Metadata
OmfValueType
Stores arbitrary metadata for OMF project, elements, and attributes. Metadata values come in a variety of types and can be nested.
typedef enum {
OMF_VALUE_TYPE_NULL,
OMF_VALUE_TYPE_BOOLEAN,
OMF_VALUE_TYPE_NUMBER,
OMF_VALUE_TYPE_STRING,
OMF_VALUE_TYPE_ARRAY,
OMF_VALUE_TYPE_OBJECT,
} OmfValueType;
OmfValue
typedef struct OmfValue {
const char *name;
OmfValueType type;
bool boolean;
double number;
const char *string;
const struct OmfValue *values;
size_t n_values;
} OmfValue;
Fields
- name:
const char* - The value name. Ignored for values inside metadata arrays.
- type:
OmfValueType - The value type, which defines which is the following fields is to be used.
- boolean:
bool - The boolean value if
typeisOMF_VALUE_TYPE_BOOLEAN. - number:
double - The number value if
typeisOMF_VALUE_TYPE_NUMBER. - string:
const char* - The string value if
typeisOMF_VALUE_TYPE_STRING, in UTF-8 encoding. - values:
const struct OmfValue* - The array of sub-values.
If
typeisOMF_VALUE_TYPE_ARRAYthen the values in order form an array. IftypeisOMF_VALUE_TYPE_OBJECTthen the value names should be used to form a map of key/value pairs. Otherwise this will be null andn_valueswill be zero. - n_values:
size_t - The number of sub-values.