libweed  2.0.0
Macros | Typedefs | Variables
weed.h File Reference
#include <stddef.h>
#include <inttypes.h>

Go to the source code of this file.

Macros

#define __need_size_t
 
#define __need_NULL
 
#define WEED_ABI_VERSION   200
 
#define WEED_API_VERSION   WEED_ABI_VERSION
 
#define WEED_TRUE   1
 
#define WEED_FALSE   0
 
#define WEED_ABI_CHECK_VERSION(version)   (WEED_ABI_VERSION >= version)
 
#define WEED_API_CHECK_VERSION(version)   WEED_ABI_CHECK_VERSION(version)
 
#define __WEED_FN_DEF__   static
 
#define WEED_VOIDPTR_SIZE   sizeof(weed_voidptr_t)
 
#define WEED_FUNCPTR_SIZE   sizeof(weed_funcptr_t)
 
#define HAVE_WEED_DATA_T
 
#define HAVE_WEED_LEAF_T
 
#define HAVE_WEED_PLANT_T
 
#define WEED_PLANT_UNKNOWN   0
 
#define WEED_PLANT_FIRST_CUSTOM   16384
 
#define WEED_PLANT_GENERIC   (WEED_PLANT_FIRST_CUSTOM - 1)
 "don't care" value, if UNKNOWN cannot be used More...
 
#define WEED_SUCCESS   0
 
#define WEED_ERROR_MEMORY_ALLOCATION   1
 
#define WEED_ERROR_NOSUCH_LEAF   2
 
#define WEED_ERROR_NOSUCH_ELEMENT   3
 
#define WEED_ERROR_WRONG_SEED_TYPE   4
 
#define WEED_ERROR_IMMUTABLE   5
 
#define WEED_ERROR_UNDELETABLE   6
 
#define WEED_ERROR_CONCURRENCY   7
 
#define WEED_ERROR_BADVERSION   8
 
#define WEED_ERROR_FIRST_CUSTOM   1024
 
#define WEED_SEED_INVALID   0
 
#define WEED_SEED_INT   1
 
#define WEED_SEED_DOUBLE   2
 
#define WEED_SEED_BOOLEAN   3
 
#define WEED_SEED_STRING   4
 
#define WEED_SEED_INT64   5
 
#define WEED_SEED_FUNCPTR   64
 
#define WEED_SEED_VOIDPTR   65
 
#define WEED_SEED_PLANTPTR   66
 
#define WEED_SEED_FIRST_CUSTOM   1024
 
#define WEED_FLAG_UNDELETABLE   (1 << 0)
 
#define WEED_FLAG_IMMUTABLE   (1 << 1)
 
#define WEED_FLAG_RESERVED_13   (1 << 2)
 
#define WEED_FLAG_RESERVED_12   (1 << 3)
 
#define WEED_FLAG_RESERVED_11   (1 << 4)
 
#define WEED_FLAG_RESERVED_10   (1 << 5)
 
#define WEED_FLAG_RESERVED_9   (1 << 6)
 
#define WEED_FLAG_RESERVED_8   (1 << 7)
 
#define WEED_FLAG_RESERVED_7   (1 << 8)
 
#define WEED_FLAG_RESERVED_6   (1 << 9)
 
#define WEED_FLAG_RESERVED_5   (1 << 10)
 
#define WEED_FLAG_RESERVED_4   (1 << 11)
 
#define WEED_FLAG_RESERVED_3   (1 << 12)
 
#define WEED_FLAG_RESERVED_2   (1 << 13)
 
#define WEED_FLAG_RESERVED_1   (1 << 14)
 
#define WEED_FLAG_RESERVED_0   (1 << 15)
 
#define WEED_FLAGBITS_RESERVED
 
#define WEED_FLAG_FIRST_CUSTOM   (1 << 16)
 
#define WEED_LEAF_TYPE   "type"
 
#define WEED_LEAF_WEED_API_VERSION   "weed_api_version"
 
#define WEED_LEAF_WEED_ABI_VERSION   WEED_LEAF_WEED_API_VERSION
 

Typedefs

typedef uint32_t weed_size_t
 
typedef int32_t weed_error_t
 
typedef void * weed_voidptr_t
 
typedef void(* weed_funcptr_t) ()
 
typedef struct _weed_data weed_data_t
 
typedef struct _weed_leaf weed_leaf_t
 
typedef weed_leaf_t weed_plant_t
 
typedef weed_plant_tweed_plantptr_t
 
typedef void *(* weed_malloc_f) (size_t)
 
typedef void(* weed_free_f) (void *)
 
typedef void *(* weed_memset_f) (void *, int, size_t)
 
typedef void *(* weed_memcpy_f) (void *, const void *, size_t)
 
typedef void *(* weed_realloc_f) (void *, size_t)
 
typedef void *(* weed_calloc_f) (size_t, size_t)
 
typedef void *(* weed_memmove_f) (void *, const void *, size_t)
 
typedef weed_plant_t *(* weed_plant_new_f) (int32_t plant_type)
 
typedef char **(* weed_plant_list_leaves_f) (weed_plant_t *, weed_size_t *nleaves)
 
typedef weed_error_t(* weed_leaf_set_f) (weed_plant_t *, const char *key, uint32_t seed_type, weed_size_t num_elems, weed_voidptr_t values)
 
typedef weed_error_t(* weed_leaf_get_f) (weed_plant_t *, const char *key, int32_t idx, weed_voidptr_t value)
 
typedef weed_size_t(* weed_leaf_num_elements_f) (weed_plant_t *, const char *key)
 
typedef weed_size_t(* weed_leaf_element_size_f) (weed_plant_t *, const char *key, int32_t idx)
 
typedef uint32_t(* weed_leaf_seed_type_f) (weed_plant_t *, const char *key)
 
typedef uint32_t(* weed_leaf_get_flags_f) (weed_plant_t *, const char *key)
 
typedef weed_error_t(* weed_plant_free_f) (weed_plant_t *)
 
typedef weed_error_t(* weed_leaf_delete_f) (weed_plant_t *, const char *key)
 

Variables

__WEED_FN_DEF__ weed_leaf_get_f weed_leaf_get
 
__WEED_FN_DEF__ weed_leaf_set_f weed_leaf_set
 
__WEED_FN_DEF__ weed_plant_new_f weed_plant_new
 
__WEED_FN_DEF__ weed_plant_list_leaves_f weed_plant_list_leaves
 
__WEED_FN_DEF__ weed_leaf_num_elements_f weed_leaf_num_elements
 
__WEED_FN_DEF__ weed_leaf_element_size_f weed_leaf_element_size
 
__WEED_FN_DEF__ weed_leaf_seed_type_f weed_leaf_seed_type
 
__WEED_FN_DEF__ weed_leaf_get_flags_f weed_leaf_get_flags
 
__WEED_FN_DEF__ weed_plant_free_f weed_plant_free
 
__WEED_FN_DEF__ weed_leaf_delete_f weed_leaf_delete
 
__WEED_FN_DEF__ weed_malloc_f weed_malloc
 
__WEED_FN_DEF__ weed_free_f weed_free
 
__WEED_FN_DEF__ weed_memcpy_f weed_memcpy
 
__WEED_FN_DEF__ weed_memset_f weed_memset
 
__WEED_FN_DEF__ weed_realloc_f weed_realloc
 
__WEED_FN_DEF__ weed_calloc_f weed_calloc
 
__WEED_FN_DEF__ weed_memmove_f weed_memmove
 

Macro Definition Documentation

◆ __need_NULL

#define __need_NULL

◆ __need_size_t

#define __need_size_t

◆ __WEED_FN_DEF__

#define __WEED_FN_DEF__   static

◆ HAVE_WEED_DATA_T

#define HAVE_WEED_DATA_T

◆ HAVE_WEED_LEAF_T

#define HAVE_WEED_LEAF_T

◆ HAVE_WEED_PLANT_T

#define HAVE_WEED_PLANT_T

◆ WEED_ABI_CHECK_VERSION

#define WEED_ABI_CHECK_VERSION (   version)    (WEED_ABI_VERSION >= version)

◆ WEED_ABI_VERSION

#define WEED_ABI_VERSION   200

◆ WEED_API_CHECK_VERSION

#define WEED_API_CHECK_VERSION (   version)    WEED_ABI_CHECK_VERSION(version)

◆ WEED_API_VERSION

#define WEED_API_VERSION   WEED_ABI_VERSION

◆ WEED_ERROR_BADVERSION

#define WEED_ERROR_BADVERSION   8

◆ WEED_ERROR_CONCURRENCY

#define WEED_ERROR_CONCURRENCY   7

◆ WEED_ERROR_FIRST_CUSTOM

#define WEED_ERROR_FIRST_CUSTOM   1024

◆ WEED_ERROR_IMMUTABLE

#define WEED_ERROR_IMMUTABLE   5

◆ WEED_ERROR_MEMORY_ALLOCATION

#define WEED_ERROR_MEMORY_ALLOCATION   1

◆ WEED_ERROR_NOSUCH_ELEMENT

#define WEED_ERROR_NOSUCH_ELEMENT   3

◆ WEED_ERROR_NOSUCH_LEAF

#define WEED_ERROR_NOSUCH_LEAF   2

◆ WEED_ERROR_UNDELETABLE

#define WEED_ERROR_UNDELETABLE   6

◆ WEED_ERROR_WRONG_SEED_TYPE

#define WEED_ERROR_WRONG_SEED_TYPE   4

◆ WEED_FALSE

#define WEED_FALSE   0

◆ WEED_FLAG_FIRST_CUSTOM

#define WEED_FLAG_FIRST_CUSTOM   (1 << 16)

◆ WEED_FLAG_IMMUTABLE

#define WEED_FLAG_IMMUTABLE   (1 << 1)

◆ WEED_FLAG_RESERVED_0

#define WEED_FLAG_RESERVED_0   (1 << 15)

◆ WEED_FLAG_RESERVED_1

#define WEED_FLAG_RESERVED_1   (1 << 14)

◆ WEED_FLAG_RESERVED_10

#define WEED_FLAG_RESERVED_10   (1 << 5)

◆ WEED_FLAG_RESERVED_11

#define WEED_FLAG_RESERVED_11   (1 << 4)

◆ WEED_FLAG_RESERVED_12

#define WEED_FLAG_RESERVED_12   (1 << 3)

◆ WEED_FLAG_RESERVED_13

#define WEED_FLAG_RESERVED_13   (1 << 2)

◆ WEED_FLAG_RESERVED_2

#define WEED_FLAG_RESERVED_2   (1 << 13)

◆ WEED_FLAG_RESERVED_3

#define WEED_FLAG_RESERVED_3   (1 << 12)

◆ WEED_FLAG_RESERVED_4

#define WEED_FLAG_RESERVED_4   (1 << 11)

◆ WEED_FLAG_RESERVED_5

#define WEED_FLAG_RESERVED_5   (1 << 10)

◆ WEED_FLAG_RESERVED_6

#define WEED_FLAG_RESERVED_6   (1 << 9)

◆ WEED_FLAG_RESERVED_7

#define WEED_FLAG_RESERVED_7   (1 << 8)

◆ WEED_FLAG_RESERVED_8

#define WEED_FLAG_RESERVED_8   (1 << 7)

◆ WEED_FLAG_RESERVED_9

#define WEED_FLAG_RESERVED_9   (1 << 6)

◆ WEED_FLAG_UNDELETABLE

#define WEED_FLAG_UNDELETABLE   (1 << 0)

◆ WEED_FLAGBITS_RESERVED

#define WEED_FLAGBITS_RESERVED

◆ WEED_FUNCPTR_SIZE

#define WEED_FUNCPTR_SIZE   sizeof(weed_funcptr_t)

◆ WEED_LEAF_TYPE

#define WEED_LEAF_TYPE   "type"

◆ WEED_LEAF_WEED_ABI_VERSION

#define WEED_LEAF_WEED_ABI_VERSION   WEED_LEAF_WEED_API_VERSION

◆ WEED_LEAF_WEED_API_VERSION

#define WEED_LEAF_WEED_API_VERSION   "weed_api_version"

◆ WEED_PLANT_FIRST_CUSTOM

#define WEED_PLANT_FIRST_CUSTOM   16384

◆ WEED_PLANT_GENERIC

#define WEED_PLANT_GENERIC   (WEED_PLANT_FIRST_CUSTOM - 1)

"don't care" value, if UNKNOWN cannot be used

◆ WEED_PLANT_UNKNOWN

#define WEED_PLANT_UNKNOWN   0

◆ WEED_SEED_BOOLEAN

#define WEED_SEED_BOOLEAN   3

◆ WEED_SEED_DOUBLE

#define WEED_SEED_DOUBLE   2

◆ WEED_SEED_FIRST_CUSTOM

#define WEED_SEED_FIRST_CUSTOM   1024

◆ WEED_SEED_FUNCPTR

#define WEED_SEED_FUNCPTR   64

◆ WEED_SEED_INT

#define WEED_SEED_INT   1

◆ WEED_SEED_INT64

#define WEED_SEED_INT64   5

◆ WEED_SEED_INVALID

#define WEED_SEED_INVALID   0

◆ WEED_SEED_PLANTPTR

#define WEED_SEED_PLANTPTR   66

◆ WEED_SEED_STRING

#define WEED_SEED_STRING   4

◆ WEED_SEED_VOIDPTR

#define WEED_SEED_VOIDPTR   65

◆ WEED_SUCCESS

#define WEED_SUCCESS   0

◆ WEED_TRUE

#define WEED_TRUE   1

◆ WEED_VOIDPTR_SIZE

#define WEED_VOIDPTR_SIZE   sizeof(weed_voidptr_t)

Typedef Documentation

◆ weed_calloc_f

typedef void*(* weed_calloc_f) (size_t, size_t)

◆ weed_data_t

typedef struct _weed_data weed_data_t

◆ weed_error_t

typedef int32_t weed_error_t

◆ weed_free_f

typedef void(* weed_free_f) (void *)

◆ weed_funcptr_t

typedef void(* weed_funcptr_t) ()

◆ weed_leaf_delete_f

typedef weed_error_t(* weed_leaf_delete_f) (weed_plant_t *, const char *key)

◆ weed_leaf_element_size_f

typedef weed_size_t(* weed_leaf_element_size_f) (weed_plant_t *, const char *key, int32_t idx)

◆ weed_leaf_get_f

typedef weed_error_t(* weed_leaf_get_f) (weed_plant_t *, const char *key, int32_t idx, weed_voidptr_t value)

◆ weed_leaf_get_flags_f

typedef uint32_t(* weed_leaf_get_flags_f) (weed_plant_t *, const char *key)

◆ weed_leaf_num_elements_f

typedef weed_size_t(* weed_leaf_num_elements_f) (weed_plant_t *, const char *key)

◆ weed_leaf_seed_type_f

typedef uint32_t(* weed_leaf_seed_type_f) (weed_plant_t *, const char *key)

◆ weed_leaf_set_f

typedef weed_error_t(* weed_leaf_set_f) (weed_plant_t *, const char *key, uint32_t seed_type, weed_size_t num_elems, weed_voidptr_t values)

◆ weed_leaf_t

typedef struct _weed_leaf weed_leaf_t

◆ weed_malloc_f

typedef void*(* weed_malloc_f) (size_t)

◆ weed_memcpy_f

typedef void*(* weed_memcpy_f) (void *, const void *, size_t)

◆ weed_memmove_f

typedef void*(* weed_memmove_f) (void *, const void *, size_t)

◆ weed_memset_f

typedef void*(* weed_memset_f) (void *, int, size_t)

◆ weed_plant_free_f

typedef weed_error_t(* weed_plant_free_f) (weed_plant_t *)

◆ weed_plant_list_leaves_f

typedef char**(* weed_plant_list_leaves_f) (weed_plant_t *, weed_size_t *nleaves)

◆ weed_plant_new_f

typedef weed_plant_t*(* weed_plant_new_f) (int32_t plant_type)

◆ weed_plant_t

◆ weed_plantptr_t

◆ weed_realloc_f

typedef void*(* weed_realloc_f) (void *, size_t)

◆ weed_size_t

typedef uint32_t weed_size_t

◆ weed_voidptr_t

typedef void* weed_voidptr_t

Variable Documentation

◆ weed_calloc

◆ weed_free

◆ weed_leaf_delete

◆ weed_leaf_element_size

__WEED_FN_DEF__ weed_leaf_element_size_f weed_leaf_element_size

◆ weed_leaf_get

◆ weed_leaf_get_flags

◆ weed_leaf_num_elements

__WEED_FN_DEF__ weed_leaf_num_elements_f weed_leaf_num_elements

◆ weed_leaf_seed_type

◆ weed_leaf_set

◆ weed_malloc

◆ weed_memcpy

◆ weed_memmove

◆ weed_memset

◆ weed_plant_free

◆ weed_plant_list_leaves

__WEED_FN_DEF__ weed_plant_list_leaves_f weed_plant_list_leaves

◆ weed_plant_new

◆ weed_realloc

WEED_FLAG_IMMUTABLE
#define WEED_FLAG_IMMUTABLE
Definition: weed.h:241
WEED_FLAG_UNDELETABLE
#define WEED_FLAG_UNDELETABLE
Definition: weed.h:240
WEED_FLAG_FIRST_CUSTOM
#define WEED_FLAG_FIRST_CUSTOM
Definition: weed.h:258