00001 /* 00002 Copyright (C) 2013- The University of Notre Dame 00003 This software is distributed under the GNU General Public License. 00004 See the file COPYING for details. 00005 */ 00006 00007 #ifndef STRING_SET_H 00008 #define STRING_SET_H 00009 00010 #include "int_sizes.h" 00011 #include "hash_table.h" 00012 00050 struct string_set *string_set_create(int buckets, hash_func_t func); 00051 00058 struct string_set *string_set_duplicate(struct string_set *s); 00059 00067 struct string_set *string_set_union(struct string_set *s1, struct string_set *s2); 00068 00074 void string_set_clear(struct string_set *s); 00075 00081 void string_set_delete(struct string_set *s); 00082 00088 int string_set_size(struct string_set *s); 00089 00099 int string_set_insert(struct string_set *s, const char *element); 00100 00110 int string_set_insert_string_set(struct string_set *s, struct string_set *s2); 00111 00116 int string_set_push(struct string_set *h, const char *element); 00117 00124 int string_set_lookup(struct string_set *s, const char *element); 00125 00132 int string_set_remove(struct string_set *s, const char *element); 00133 00138 void *string_set_pop(struct string_set *s); 00139 00147 void string_set_first_element(struct string_set *s); 00148 00156 int string_set_next_element(struct string_set *s, char **element); 00157 00158 #endif