A structure used for extracting multiple values from an array or dictionary in one go. More...
#include "swdataapi.h"
Data Fields | |
uint32 | type_mask |
sw_datum | key |
sw_datum | value |
A structure used for extracting multiple values from an array or dictionary in one go.
The sw_data_api::match() method takes an array of these structures to fill in. Each entry in the array specifies a mask of allowable value types to match, a key to match, and storage for the extracted value.
sw_datum sw_data_match::key |
The key of the field to be matched.
uint32 sw_data_match::type_mask |
A bitmask indicating which types the matched value may take. The bit value to match a type should be (1u << SW_DATUM_TYPE_*). Symbols are defined to make this easier (such as SW_DATUM_BIT_INTEGER): see SW_DATUM_BITS.
Optional values are indicated by including (1u << SW_DATUM_TYPE_NOTHING) (or SW_DATUM_BIT_NOTHING) in the mask; if the key is not found, then the type of value will be set to SW_DATUM_TYPE_NOTHING. Lax checking of values may be enabled by including (1u << SW_DATUM_TYPE_INVALID) (or SW_DATUM_BIT_INVALID) in the mask; if the keyed value exists but the type was not matched to any other bit, value's type field will be set to SW_DATUM_TYPE_INVALID.
sw_datum sw_data_match::value |
The matched value.