41#ifndef QSC_COLLECTION_H
42#define QSC_COLLECTION_H
46QSC_CPLUSPLUS_ENABLED_START
94#define QSC_COLLECTION_KEY_WIDTH 16ULL
230#if defined(QSC_DEBUG_MODE)
241QSC_CPLUSPLUS_ENABLED_END
QSC_EXPORT_API void qsc_collection_initialize(qsc_collection_state *ctx, size_t width)
Initialize the collection.
Definition collection.c:172
QSC_EXPORT_API size_t qsc_collection_size(const qsc_collection_state *ctx)
Get the serialized collection size.
Definition collection.c:315
QSC_EXPORT_API void qsc_collection_erase(qsc_collection_state *ctx)
Erase the collection.
Definition collection.c:103
QSC_EXPORT_API bool qsc_collection_find(const qsc_collection_state *ctx, uint8_t *item, const uint8_t *key)
Find an item in the collection.
Definition collection.c:114
QSC_EXPORT_API void qsc_collection_deserialize(qsc_collection_state *ctx, const uint8_t *input)
Deserialize a collection.
Definition collection.c:55
QSC_EXPORT_API void qsc_collection_remove(qsc_collection_state *ctx, const uint8_t *key)
Remove an item from the collection.
Definition collection.c:205
QSC_EXPORT_API void qsc_collection_dispose(qsc_collection_state *ctx)
Dispose of the collection.
Definition collection.c:78
QSC_EXPORT_API void qsc_collection_item(qsc_collection_state *ctx, uint8_t *item, size_t index)
Retrieve a collection item by index.
Definition collection.c:188
QSC_EXPORT_API size_t qsc_collection_serialize(uint8_t *output, const qsc_collection_state *ctx)
Serialize the collection.
Definition collection.c:287
QSC_EXPORT_API void qsc_collection_add(qsc_collection_state *ctx, const uint8_t *item, const uint8_t *key)
Add an item to the collection.
Definition collection.c:9
QSC_EXPORT_API bool qsc_collection_item_exists(const qsc_collection_state *ctx, const uint8_t *key)
Check if an item exists in the collection.
Definition collection.c:148
Contains common definitions for the Quantum Secure Cryptographic (QSC) library.
#define QSC_EXPORT_API
API export macro for Microsoft compilers when importing from a DLL.
Definition common.h:520
Collection state structure.
Definition collection.h:105
uint8_t * keys
Definition collection.h:107
uint32_t width
Definition collection.h:109
uint32_t count
Definition collection.h:108
uint8_t * items
Definition collection.h:106