Blob


1 /*
2 * Copyright (c) 2019 Stefan Sperling <stsp@openbsd.org>
3 *
4 * Permission to use, copy, modify, and distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
7 *
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15 */
17 struct got_pathset;
19 struct got_pathset *got_pathset_alloc(void);
20 void got_pathset_free(struct got_pathset *);
22 const struct got_error *got_pathset_add(struct got_pathset *, const char *,
23 void *);
24 void *got_pathset_get(struct got_pathset *, const char *);
25 const struct got_error *got_pathset_remove(void **, struct got_pathset *,
26 const char *);
27 int got_pathset_contains(struct got_pathset *, const char *);
28 const struct got_error *got_pathset_for_each(struct got_pathset *,
29 const struct got_error *(*cb)(const char *, void *, void *),
30 void *);
31 const struct got_error *got_pathset_for_each_reverse(struct got_pathset *,
32 const struct got_error *(*cb)(const char *, void *, void *),
33 void *);
34 int got_pathset_num_elements(struct got_pathset *);