rizin/librz/include/rz_util/rz_set.h

43 lines
1.4 KiB
C

// SPDX-FileCopyrightText: pancake <pancake@nopcode.org>
// SPDX-FileCopyrightText: 2024 pelijah
// SPDX-License-Identifier: MIT
#ifndef RZ_SET_H
#define RZ_SET_H
#include <rz_util/ht_sp.h>
#include <rz_util/ht_up.h>
#include <rz_vector.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef HtSP RzSetS;
RZ_API RZ_OWN RzSetS *rz_set_s_new(HtStrOption opt);
RZ_API void rz_set_s_free(RZ_NULLABLE RzSetS *set);
RZ_API void rz_set_s_add(RZ_NONNULL RzSetS *set, const char *str);
RZ_API bool rz_set_s_contains(const RZ_NONNULL RzSetS *set, const char *str);
RZ_API void rz_set_s_delete(RZ_NONNULL RzSetS *set, const char *str);
RZ_API void rz_set_s_clear(RZ_NONNULL RzSetS *set);
RZ_API ut32 rz_set_s_size(const RZ_NONNULL RzSetS *set);
RZ_API RZ_OWN RzPVector /*<char *>*/ *rz_set_s_to_vector(RZ_NONNULL RzSetS *set);
RZ_API RzIterator /* <RzSetS> */ *rz_set_s_as_iter(const RZ_NONNULL RzSetS *set);
typedef HtUP RzSetU;
RZ_API RZ_OWN RzSetU *rz_set_u_new(void);
RZ_API void rz_set_u_free(RZ_NULLABLE RzSetU *set);
RZ_API void rz_set_u_add(RZ_NONNULL RzSetU *set, ut64 u);
RZ_API bool rz_set_u_contains(const RZ_NONNULL RzSetU *set, ut64 u);
RZ_API void rz_set_u_delete(RZ_NONNULL RzSetU *set, ut64 u);
RZ_API void rz_set_u_clear(RZ_NONNULL RzSetU *set);
RZ_API ut32 rz_set_u_size(const RZ_NONNULL RzSetU *set);
RZ_API RzIterator /* <RzSetU> */ *rz_set_u_as_iter(const RZ_NONNULL RzSetU *set);
#ifdef __cplusplus
}
#endif
#endif