Go to the documentation of this file.
559 #define CYAML_VALUE_INT( \
563 .data_size = sizeof(_type)
575 #define CYAML_FIELD_INT( \
576 _key, _flags, _structure, _member) \
580 CYAML_VALUE_INT(((_flags) & (~CYAML_FLAG_POINTER)), \
581 (((_structure *)NULL)->_member)), \
583 .data_offset = offsetof(_structure, _member) \
596 #define CYAML_FIELD_INT_PTR( \
597 _key, _flags, _structure, _member) \
601 CYAML_VALUE_INT(((_flags) | CYAML_FLAG_POINTER), \
602 (*(((_structure *)NULL)->_member))), \
604 .data_offset = offsetof(_structure, _member) \
613 #define CYAML_VALUE_UINT( \
615 .type = CYAML_UINT, \
617 .data_size = sizeof(_type)
629 #define CYAML_FIELD_UINT( \
630 _key, _flags, _structure, _member) \
634 CYAML_VALUE_UINT(((_flags) & (~CYAML_FLAG_POINTER)), \
635 (((_structure *)NULL)->_member)), \
637 .data_offset = offsetof(_structure, _member) \
650 #define CYAML_FIELD_UINT_PTR( \
651 _key, _flags, _structure, _member) \
655 CYAML_VALUE_UINT(((_flags) | CYAML_FLAG_POINTER), \
656 (*(((_structure *)NULL)->_member))), \
658 .data_offset = offsetof(_structure, _member) \
667 #define CYAML_VALUE_BOOL( \
669 .type = CYAML_BOOL, \
671 .data_size = sizeof(_type)
683 #define CYAML_FIELD_BOOL( \
684 _key, _flags, _structure, _member) \
688 CYAML_VALUE_BOOL(((_flags) & (~CYAML_FLAG_POINTER)), \
689 (((_structure *)NULL)->_member)), \
691 .data_offset = offsetof(_structure, _member) \
704 #define CYAML_FIELD_BOOL_PTR( \
705 _key, _flags, _structure, _member) \
709 CYAML_VALUE_BOOL(((_flags) | CYAML_FLAG_POINTER), \
710 (*(((_structure *)NULL)->_member))), \
712 .data_offset = offsetof(_structure, _member) \
723 #define CYAML_VALUE_ENUM( \
724 _flags, _type, _strings, _strings_count) \
725 .type = CYAML_ENUM, \
727 .data_size = sizeof(_type), \
729 .strings = _strings, \
730 .count = _strings_count, \
745 #define CYAML_FIELD_ENUM( \
746 _key, _flags, _structure, _member, _strings, _strings_count) \
750 CYAML_VALUE_ENUM(((_flags) & (~CYAML_FLAG_POINTER)), \
751 (((_structure *)NULL)->_member), \
752 _strings, _strings_count), \
754 .data_offset = offsetof(_structure, _member) \
769 #define CYAML_FIELD_ENUM_PTR( \
770 _key, _flags, _structure, _member, _strings, _strings_count) \
774 CYAML_VALUE_ENUM(((_flags) | CYAML_FLAG_POINTER), \
775 (*(((_structure *)NULL)->_member)), \
776 _strings, _strings_count), \
778 .data_offset = offsetof(_structure, _member) \
789 #define CYAML_VALUE_FLAGS( \
790 _flags, _type, _strings, _strings_count) \
791 .type = CYAML_FLAGS, \
793 .data_size = sizeof(_type), \
795 .strings = _strings, \
796 .count = _strings_count, \
811 #define CYAML_FIELD_FLAGS( \
812 _key, _flags, _structure, _member, _strings, _strings_count) \
816 CYAML_VALUE_FLAGS(((_flags) & (~CYAML_FLAG_POINTER)), \
817 (((_structure *)NULL)->_member), \
818 _strings, _strings_count), \
820 .data_offset = offsetof(_structure, _member) \
835 #define CYAML_FIELD_FLAGS_PTR( \
836 _key, _flags, _structure, _member, _strings, _strings_count) \
840 CYAML_VALUE_FLAGS(((_flags) | CYAML_FLAG_POINTER), \
841 (*(((_structure *)NULL)->_member)), \
842 _strings, _strings_count), \
844 .data_offset = offsetof(_structure, _member) \
855 #define CYAML_VALUE_BITFIELD( \
856 _flags, _type, _bitvals, _bitvals_count) \
857 .type = CYAML_BITFIELD, \
859 .data_size = sizeof(_type), \
861 .bitdefs = _bitvals, \
862 .count = _bitvals_count, \
877 #define CYAML_FIELD_BITFIELD( \
878 _key, _flags, _structure, _member, _bitvals, _bitvals_count) \
882 CYAML_VALUE_BITFIELD(((_flags) & (~CYAML_FLAG_POINTER)), \
883 (((_structure *)NULL)->_member), \
884 _bitvals, _bitvals_count), \
886 .data_offset = offsetof(_structure, _member) \
901 #define CYAML_FIELD_BITFIELD_PTR( \
902 _key, _flags, _structure, _member, _bitvals, _bitvals_count) \
906 CYAML_VALUE_BITFIELD(((_flags) | CYAML_FLAG_POINTER), \
907 (*(((_structure *)NULL)->_member)), \
908 _bitvals, _bitvals_count), \
910 .data_offset = offsetof(_structure, _member) \
919 #define CYAML_VALUE_FLOAT( \
921 .type = CYAML_FLOAT, \
923 .data_size = sizeof(_type)
935 #define CYAML_FIELD_FLOAT( \
936 _key, _flags, _structure, _member) \
940 CYAML_VALUE_FLOAT(((_flags) & (~CYAML_FLAG_POINTER)), \
941 (((_structure *)NULL)->_member)), \
943 .data_offset = offsetof(_structure, _member) \
956 #define CYAML_FIELD_FLOAT_PTR( \
957 _key, _flags, _structure, _member) \
961 CYAML_VALUE_FLOAT(((_flags) | CYAML_FLAG_POINTER), \
962 (*(((_structure *)NULL)->_member))), \
964 .data_offset = offsetof(_structure, _member) \
984 #define CYAML_VALUE_STRING( \
985 _flags, _type, _min, _max) \
986 .type = CYAML_STRING, \
988 .data_size = sizeof(_type), \
1006 #define CYAML_FIELD_STRING( \
1007 _key, _flags, _structure, _member, _min) \
1011 CYAML_VALUE_STRING(((_flags) & (~CYAML_FLAG_POINTER)), \
1012 (((_structure *)NULL)->_member), _min, \
1013 sizeof(((_structure *)NULL)->_member) - 1), \
1015 .data_offset = offsetof(_structure, _member) \
1034 #define CYAML_FIELD_STRING_PTR( \
1035 _key, _flags, _structure, _member, _min, _max) \
1039 CYAML_VALUE_STRING(((_flags) | CYAML_FLAG_POINTER), \
1040 (((_structure *)NULL)->_member), \
1043 .data_offset = offsetof(_structure, _member) \
1053 #define CYAML_VALUE_MAPPING( \
1054 _flags, _type, _fields) \
1055 .type = CYAML_MAPPING, \
1056 .flags = (_flags), \
1057 .data_size = sizeof(_type), \
1059 .fields = _fields, \
1073 #define CYAML_FIELD_MAPPING( \
1074 _key, _flags, _structure, _member, _fields) \
1078 CYAML_VALUE_MAPPING(((_flags) & (~CYAML_FLAG_POINTER)), \
1079 (((_structure *)NULL)->_member), _fields), \
1081 .data_offset = offsetof(_structure, _member) \
1095 #define CYAML_FIELD_MAPPING_PTR( \
1096 _key, _flags, _structure, _member, _fields) \
1100 CYAML_VALUE_MAPPING(((_flags) | CYAML_FLAG_POINTER), \
1101 (*(((_structure *)NULL)->_member)), _fields), \
1103 .data_offset = offsetof(_structure, _member) \
1115 #define CYAML_VALUE_SEQUENCE( \
1116 _flags, _type, _entry, _min, _max) \
1117 .type = CYAML_SEQUENCE, \
1118 .flags = (_flags), \
1119 .data_size = sizeof(_type), \
1159 #define CYAML_FIELD_SEQUENCE( \
1160 _key, _flags, _structure, _member, _entry, _min, _max) \
1164 CYAML_VALUE_SEQUENCE((_flags), \
1165 (*(((_structure *)NULL)->_member)), \
1166 _entry, _min, _max), \
1168 .data_offset = offsetof(_structure, _member), \
1169 .count_size = sizeof(((_structure *)NULL)->_member ## _count), \
1170 .count_offset = offsetof(_structure, _member ## _count), \
1207 #define CYAML_FIELD_SEQUENCE_COUNT( \
1208 _key, _flags, _structure, _member, _count, _entry, _min, _max) \
1212 CYAML_VALUE_SEQUENCE((_flags), \
1213 (*(((_structure *)NULL)->_member)), \
1214 _entry, _min, _max), \
1216 .data_offset = offsetof(_structure, _member), \
1217 .count_size = sizeof(((_structure *)NULL)->_count), \
1218 .count_offset = offsetof(_structure, _count), \
1229 #define CYAML_VALUE_SEQUENCE_FIXED( \
1230 _flags, _type, _entry, _count) \
1231 .type = CYAML_SEQUENCE_FIXED, \
1232 .flags = (_flags), \
1233 .data_size = sizeof(_type), \
1250 #define CYAML_FIELD_SEQUENCE_FIXED( \
1251 _key, _flags, _structure, _member, _entry, _count) \
1255 CYAML_VALUE_SEQUENCE_FIXED((_flags), \
1256 (*(((_structure *)NULL)->_member)), \
1259 .data_offset = offsetof(_structure, _member) \
1268 #define CYAML_FIELD_IGNORE( \
1273 .type = CYAML_IGNORE, \
1274 .flags = (_flags), \
1284 #define CYAML_FIELD_END { .key = NULL }
1290 #define CYAML_UNLIMITED 0xffffffff
1300 #define CYAML_ARRAY_LEN(_a) ((sizeof(_a)) / (sizeof(_a[0])))
1348 typedef void * (*cyaml_mem_fn_t)(
1487 unsigned *seq_count_out);
1509 const uint8_t *input,
1514 unsigned *seq_count_out);
1532 unsigned seq_count);
1576 unsigned seq_count);
1600 unsigned seq_count);
enum cyaml_flag flags
Definition: cyaml.h:308
@ CYAML_ERR_LIBYAML_PARSER
Definition: cyaml.h:546
@ CYAML_FLAG_POINTER_NULL
Definition: cyaml.h:152
@ CYAML_ERR_BAD_PARAM_NULL_SCHEMA
Definition: cyaml.h:541
@ CYAML_BOOL
Definition: cyaml.h:56
@ CYAML_CFG_DOCUMENT_DELIM
Definition: cyaml.h:488
@ CYAML_FLAGS
Definition: cyaml.h:72
struct cyaml_bitdef cyaml_bitdef_t
@ CYAML_ERR_INVALID_KEY
Definition: cyaml.h:520
void cyaml_log(cyaml_log_t level, void *ctx, const char *fmt, va_list args)
Definition: util.c:60
struct cyaml_schema_value::@0::@5 sequence
cyaml_cfg_flags
Definition: cyaml.h:443
@ CYAML_ERR_MAPPING_FIELD_MISSING
Definition: cyaml.h:538
@ CYAML_IGNORE
Definition: cyaml.h:119
const cyaml_strval_t * strings
Definition: cyaml.h:391
uint32_t max
Definition: cyaml.h:334
void cyaml_data_t
Definition: cyaml.h:1306
@ CYAML_ERR_LIBYAML_EMITTER
Definition: cyaml.h:545
@ CYAML_CFG_IGNORE_UNKNOWN_KEYS
Definition: cyaml.h:453
@ CYAML_OK
Definition: cyaml.h:516
@ CYAML_ERR_BAD_TYPE_IN_SCHEMA
Definition: cyaml.h:529
@ CYAML_FLAG_POINTER
Definition: cyaml.h:142
struct cyaml_schema_value value
Definition: cyaml.h:435
@ CYAML_ERR_ALIAS
Definition: cyaml.h:518
void * cyaml_mem(void *ctx, void *ptr, size_t size)
Definition: mem.c:22
@ CYAML_ERR__COUNT
Definition: cyaml.h:547
@ CYAML_STRING
Definition: cyaml.h:74
@ CYAML_LOG_ERROR
Definition: cyaml.h:1314
@ CYAML_ERR_SEQUENCE_FIXED_COUNT
Definition: cyaml.h:536
uint32_t count_offset
Definition: cyaml.h:426
@ CYAML_UINT
Definition: cyaml.h:55
@ CYAML_FLAG_STRICT
Definition: cyaml.h:188
cyaml_log_e
Definition: cyaml.h:1309
@ CYAML_LOG_INFO
Definition: cyaml.h:1311
const uint32_t cyaml_version
Definition: util.c:49
void *(* cyaml_mem_fn_t)(void *ctx, void *ptr, size_t size)
Definition: cyaml.h:1348
cyaml_type
Definition: cyaml.h:53
uint32_t count
Definition: cyaml.h:352
@ CYAML_ERR_STRING_LENGTH_MIN
Definition: cyaml.h:525
cyaml_err
Definition: cyaml.h:515
@ CYAML_FLOAT
Definition: cyaml.h:73
enum cyaml_type type
Definition: cyaml.h:306
int64_t val
Definition: cyaml.h:268
@ CYAML_FLAG_BLOCK
Definition: cyaml.h:205
struct cyaml_schema_value::@0::@2 string
void * log_ctx
Definition: cyaml.h:1384
struct cyaml_strval cyaml_strval_t
const struct cyaml_schema_field * fields
Definition: cyaml.h:345
@ CYAML_ERR_INVALID_DATA_SIZE
Definition: cyaml.h:527
enum cyaml_type cyaml_type_e
uint32_t data_offset
Definition: cyaml.h:421
enum cyaml_flag cyaml_flag_e
@ CYAML_ERR_SEQUENCE_ENTRIES_MAX
Definition: cyaml.h:535
const char * name
Definition: cyaml.h:277
const char * cyaml_version_str
Definition: util.c:57
@ CYAML_ERR_BAD_BITVAL_IN_SCHEMA
Definition: cyaml.h:533
@ CYAML_SEQUENCE_FIXED
Definition: cyaml.h:113
uint8_t offset
Definition: cyaml.h:278
@ CYAML_ERR_INVALID_VALUE
Definition: cyaml.h:521
@ CYAML_MAPPING
Definition: cyaml.h:79
@ CYAML_LOG_NOTICE
Definition: cyaml.h:1312
struct cyaml_schema_value::@0::@6 enumeration
@ CYAML_ERR_LIBYAML_EVENT_INIT
Definition: cyaml.h:544
@ CYAML_ERR_INVALID_ALIAS
Definition: cyaml.h:522
@ CYAML_ERR_BAD_PARAM_NULL_DATA
Definition: cyaml.h:532
@ CYAML_ERR_BAD_CONFIG_NULL_MEMFN
Definition: cyaml.h:539
cyaml_log_fn_t log_fn
Definition: cyaml.h:1374
@ CYAML_LOG_WARNING
Definition: cyaml.h:1313
@ CYAML_CFG_NO_ALIAS
Definition: cyaml.h:506
@ CYAML_ERR_BAD_MIN_MAX_SCHEMA
Definition: cyaml.h:530
void(* cyaml_log_fn_t)(cyaml_log_t level, void *ctx, const char *fmt, va_list args)
Definition: cyaml.h:1328
const char * str
Definition: cyaml.h:267
@ CYAML_ERR_BAD_PARAM_NULL_CONFIG
Definition: cyaml.h:540
@ CYAML_ERR_UNEXPECTED_EVENT
Definition: cyaml.h:524
@ CYAML_CFG_STYLE_BLOCK
Definition: cyaml.h:467
const char * cyaml_strerror(cyaml_err_t err)
Definition: util.c:81
const char * key
Definition: cyaml.h:416
cyaml_cfg_flags_t flags
Definition: cyaml.h:1414
cyaml_err_t cyaml_load_file(const char *path, const cyaml_config_t *config, const cyaml_schema_value_t *schema, cyaml_data_t **data_out, unsigned *seq_count_out)
Definition: load.c:2552
cyaml_log_t log_level
Definition: cyaml.h:1412
enum cyaml_log_e cyaml_log_t
enum cyaml_cfg_flags cyaml_cfg_flags_t
@ CYAML_ERR_LIBYAML_EMITTER_INIT
Definition: cyaml.h:542
@ CYAML_FLAG_DEFAULT
Definition: cyaml.h:133
struct cyaml_schema_value::@0::@3 mapping
@ CYAML_ERR_STRING_LENGTH_MAX
Definition: cyaml.h:526
uint32_t data_size
Definition: cyaml.h:316
struct cyaml_config cyaml_config_t
void * mem_ctx
Definition: cyaml.h:1405
cyaml_err_t cyaml_load_data(const uint8_t *input, size_t input_len, const cyaml_config_t *config, const cyaml_schema_value_t *schema, cyaml_data_t **data_out, unsigned *seq_count_out)
Definition: load.c:2594
cyaml_err_t cyaml_save_data(char **output, size_t *len, const cyaml_config_t *config, const cyaml_schema_value_t *schema, const cyaml_data_t *data, unsigned seq_count)
Definition: save.c:1443
@ CYAML_ERR_SEQUENCE_ENTRIES_MIN
Definition: cyaml.h:534
@ CYAML_ERR_OOM
Definition: cyaml.h:517
@ CYAML_ERR_INTERNAL_ERROR
Definition: cyaml.h:523
@ CYAML_FLAG_CASE_INSENSITIVE
Definition: cyaml.h:258
struct cyaml_schema_value cyaml_schema_value_t
@ CYAML_ENUM
Definition: cyaml.h:62
@ CYAML_FLAG_OPTIONAL
Definition: cyaml.h:134
@ CYAML_ERR_FILE_OPEN
Definition: cyaml.h:519
cyaml_err_t cyaml_free(const cyaml_config_t *config, const cyaml_schema_value_t *schema, cyaml_data_t *data, unsigned seq_count)
Definition: free.c:143
@ CYAML_CFG_DEFAULT
Definition: cyaml.h:447
@ CYAML_FLAG_FLOW
Definition: cyaml.h:222
@ CYAML_FLAG_POINTER_NULL_STR
Definition: cyaml.h:175
@ CYAML_CFG_CASE_INSENSITIVE
Definition: cyaml.h:494
cyaml_mem_fn_t mem_fn
Definition: cyaml.h:1395
const struct cyaml_schema_value * entry
Definition: cyaml.h:369
cyaml_flag
Definition: cyaml.h:132
@ CYAML_LOG_DEBUG
Definition: cyaml.h:1310
const struct cyaml_bitdef * bitdefs
Definition: cyaml.h:350
@ CYAML_BITFIELD
Definition: cyaml.h:89
cyaml_err_t cyaml_save_file(const char *path, const cyaml_config_t *config, const cyaml_schema_value_t *schema, const cyaml_data_t *data, unsigned seq_count)
Definition: save.c:1345
@ CYAML_ERR_LIBYAML_PARSER_INIT
Definition: cyaml.h:543
@ CYAML__TYPE_COUNT
Definition: cyaml.h:124
@ CYAML_FLAG_CASE_SENSITIVE
Definition: cyaml.h:240
@ CYAML_ERR_TOP_LEVEL_NON_PTR
Definition: cyaml.h:528
@ CYAML_ERR_SEQUENCE_IN_SEQUENCE
Definition: cyaml.h:537
@ CYAML_CFG_STYLE_FLOW
Definition: cyaml.h:481
enum cyaml_err cyaml_err_t
uint8_t bits
Definition: cyaml.h:279
struct cyaml_schema_value::@0::@4 bitfield
@ CYAML_ERR_BAD_PARAM_SEQ_COUNT
Definition: cyaml.h:531
uint32_t min
Definition: cyaml.h:326
struct cyaml_schema_field cyaml_schema_field_t
@ CYAML_INT
Definition: cyaml.h:54
uint8_t count_size
Definition: cyaml.h:431
@ CYAML_SEQUENCE
Definition: cyaml.h:101