#include "malunal/container.h" const uuid_t UUID_CONTAINER_T = { .tl = 0xF4784CF5, .tm = 0xFE95, .thv = 0x4529, .csr = 0xBD, .csl = 0x6D, .nbs = { 0x82, 0x53, 0x70, 0x85, 0xC4, 0xAE } }; static malunal_cstr_t describe(malunal_int32_t code) { switch (code) { case CONTAINER_ERROR_FAILURE: return "Generic container error"; case CONTAINER_ERROR_NULL_CONTAINER: return "Container provided was null"; case CONTAINER_ERROR_OUT_OF_BOUNDS: return "Index into container was out of bounds"; } return "Unknown container error"; } const error_domain_t ERROR_DOMAIN_CONTAINER_T = { .describe = &describe, .name = "malunal.container.error" }; error_t container_allocator( container_iptr_t container, allocator_mptr_t* out ) { return container != null ? container->vtable->allocator(container, out) : (error_t) { .domain = &ERROR_DOMAIN_CONTAINER_T, .code = CONTAINER_ERROR_NULL_CONTAINER }; } error_t container_stride( container_iptr_t container, malunal_size_t* out ) { return container != null ? container->vtable->stride(container, out) : (error_t) { .domain = &ERROR_DOMAIN_CONTAINER_T, .code = CONTAINER_ERROR_NULL_CONTAINER }; } error_t container_count( container_iptr_t container, malunal_size_t* out ) { return container != null ? container->vtable->count(container, out) : (error_t) { .domain = &ERROR_DOMAIN_CONTAINER_T, .code = CONTAINER_ERROR_NULL_CONTAINER }; } error_t container_capacity( container_iptr_t container, malunal_size_t* out ) { return container != null ? container->vtable->capacity(container, out) : (error_t) { .domain = &ERROR_DOMAIN_CONTAINER_T, .code = CONTAINER_ERROR_NULL_CONTAINER }; } error_t container_append( container_mptr_t container, malunal_iptr_t element ) { return container != null ? container->vtable->append(container, element) : (error_t) { .domain = &ERROR_DOMAIN_CONTAINER_T, .code = CONTAINER_ERROR_NULL_CONTAINER }; } error_t container_remove( container_mptr_t container, malunal_iptr_t element ) { return container != null ? container->vtable->remove(container, element) : (error_t) { .domain = &ERROR_DOMAIN_CONTAINER_T, .code = CONTAINER_ERROR_NULL_CONTAINER }; } error_t container_contains( container_iptr_t container, malunal_iptr_t element ) { return container != null ? container->vtable->contains(container, element) : (error_t) { .domain = &ERROR_DOMAIN_CONTAINER_T, .code = CONTAINER_ERROR_NULL_CONTAINER }; } error_t container_clear( container_mptr_t container ) { return container != null ? container->vtable->clear(container) : (error_t) { .domain = &ERROR_DOMAIN_CONTAINER_T, .code = CONTAINER_ERROR_NULL_CONTAINER }; }