Types (structs, unions and typedefs) ==================================== .. type:: sfparse_vec :type:`sfparse_vec` stores sequence of bytes. .. member:: uint8_t *base :member:`base` points to the beginning of the sequence of bytes. .. member:: size_t len :member:`len` is the number of bytes contained in this sequence. .. type:: sfparse_decimal :type:`sfparse_decimal` contains decimal value. .. member:: int64_t numer :member:`numer` contains numerator of the decimal value. .. member:: int64_t denom :member:`denom` contains denominator of the decimal value. .. type:: sfparse_value :type:`sfparse_value` stores a Structured Field item. For Inner List, only type is set to :enum:`sfparse_type.SFPARSE_TYPE_INNER_LIST`. In order to read the items contained in an inner list, call `sfparse_parser_inner_list`. .. member:: sfparse_type type :member:`type` is the type of the value contained in this particular object. .. member:: uint32_t flags :member:`flags` is bitwise OR of one or more of :macro:`SFPARSE_VALUE_FLAG_* `. .. union:: @sfparse_value_value .. member:: int boolean :member:`boolean` contains boolean value if :member:`type` == :enum:`sfparse_type.SFPARSE_TYPE_BOOLEAN`. 1 indicates true, and 0 indicates false. .. member:: int64_t integer :member:`integer` contains integer value if :member:`type` is either :enum:`sfparse_type.SFPARSE_TYPE_INTEGER` or :enum:`sfparse_type.SFPARSE_TYPE_DATE`. .. member:: sfparse_decimal decimal :member:`decimal` contains decimal value if :member:`type` == :enum:`sfparse_type.SFPARSE_TYPE_DECIMAL`. .. member:: sfparse_vec vec :member:`vec` contains sequence of bytes if :member:`type` is either :enum:`sfparse_type.SFPARSE_TYPE_STRING`, :enum:`sfparse_type.SFPARSE_TYPE_TOKEN`, :enum:`sfparse_type.SFPARSE_TYPE_BYTESEQ`, or :enum:`sfparse_type.SFPARSE_TYPE_DISPSTRING`. For :enum:`sfparse_type.SFPARSE_TYPE_STRING`, this field contains one or more escaped characters if :member:`flags` has :macro:`SFPARSE_VALUE_FLAG_ESCAPED_STRING` set. To unescape the string, use `sfparse_unescape`. For :enum:`sfparse_type.SFPARSE_TYPE_BYTESEQ`, this field contains base64 encoded string. To decode this byte string, use `sfparse_base64decode`. For :enum:`sfparse_type.SFPARSE_TYPE_DISPSTRING`, this field may contain percent-encoded UTF-8 byte sequences. To decode it, use `sfparse_pctdecode`. If :member:`vec.len ` == 0, :member:`vec.base ` is guaranteed to be NULL. .. type:: sfparse_parser :type:`sfparse_parser` is the Structured Field Values parser. Use `sfparse_parser_init` to initialize it.