diff options
Diffstat (limited to 'src/set.c')
-rw-r--r-- | src/set.c | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/set.c b/src/set.c new file mode 100644 index 0000000..3c03231 --- /dev/null +++ b/src/set.c @@ -0,0 +1,53 @@ +#include "config.h" + +#include <assert.h> +#include <errno.h> +#include <stdbool.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include "logerr.h" +#include "util.h" + +#include "set.h" + + + +struct Set { + size_t count; +}; + + + +int +set_new(const struct Set **const out) { + int rc = -1; + + const struct Set *ret = NULL; + + ret = malloc(sizeof(*ret)); + if (ret == NULL) { + logerr("malloc(): %s", strerror(errno)); + goto out; + } + + memcpy((void *)ret, &(struct Set) { + .count = 0U, + }, sizeof(*ret)); + *out = ret; + rc = 0; +out: + if (rc) { + if (ret != NULL) { + freeit((void *)&ret); + } + } + return rc; +} + +void +set_free(const struct Set **const s) { + assert((*s) != NULL); + free((void *)*s); +} |