void shash_clear(struct shash *);
bool shash_is_empty(const struct shash *);
size_t shash_count(const struct shash *);
-struct shash_node *shash_add(struct shash *, const char *, void *);
+struct shash_node *shash_add(struct shash *, const char *, const void *);
+bool shash_add_once(struct shash *, const char *, const void *);
void shash_delete(struct shash *, struct shash_node *);
struct shash_node *shash_find(const struct shash *, const char *);
void *shash_find_data(const struct shash *, const char *);
void *shash_find_and_delete(struct shash *, const char *);
struct shash_node *shash_first(const struct shash *);
+const struct shash_node **shash_sort(const struct shash *);
#endif /* shash.h */