Encoding

FieldName

name : FieldName(_shape) -> Str

FieldNames

rename_fields : FieldNames(_shape), (Str -> Str) -> FieldNames(_shape)
shortest_name : FieldNames(_shape) -> U64
longest_name : FieldNames(_shape) -> U64
iter : FieldNames(_shape) -> Iter(FieldName(_shape))
for_size : FieldNames(_shape), U64 -> Iter(FieldName(_shape))

ParseTagUnionSpec

parse : ParseTagUnionSpec(_shape), { tag : Str, encoding : _encoding, state : _state, missing : _err } -> Try({ value : _shape, rest : _state }, _err)

Json

parse_str : JsonEncoding, JsonState -> Try({ value : Str, rest : JsonState }, ParseErr)
parse_bool : JsonEncoding, JsonState -> Try({ value : Bool, rest : JsonState }, ParseErr)
parse_u8 : JsonEncoding, JsonState -> Try({ value : U8, rest : JsonState }, ParseErr)
parse_i8 : JsonEncoding, JsonState -> Try({ value : I8, rest : JsonState }, ParseErr)
parse_u16 : JsonEncoding, JsonState -> Try({ value : U16, rest : JsonState }, ParseErr)
parse_i16 : JsonEncoding, JsonState -> Try({ value : I16, rest : JsonState }, ParseErr)
parse_u32 : JsonEncoding, JsonState -> Try({ value : U32, rest : JsonState }, ParseErr)
parse_i32 : JsonEncoding, JsonState -> Try({ value : I32, rest : JsonState }, ParseErr)
parse_u64 : JsonEncoding, JsonState -> Try({ value : U64, rest : JsonState }, ParseErr)
parse_i64 : JsonEncoding, JsonState -> Try({ value : I64, rest : JsonState }, ParseErr)
parse_u128 : JsonEncoding, JsonState -> Try({ value : U128, rest : JsonState }, ParseErr)
parse_i128 : JsonEncoding, JsonState -> Try({ value : I128, rest : JsonState }, ParseErr)
parse_dec : JsonEncoding, JsonState -> Try({ value : Dec, rest : JsonState }, ParseErr)
parse_f32 : JsonEncoding, JsonState -> Try({ value : F32, rest : JsonState }, ParseErr)
parse_f64 : JsonEncoding, JsonState -> Try({ value : F64, rest : JsonState }, ParseErr)
parse_null : JsonEncoding, JsonState -> Try(JsonState, ParseErr)
parse_array_start : JsonEncoding, JsonState -> Try(JsonState, ParseErr)
parse_array_next : JsonEncoding, JsonState -> Try([Element(JsonState), Done(JsonState)], ParseErr)
parse_array_after_element : JsonEncoding, JsonState -> Try([Continue(JsonState), Done(JsonState)], ParseErr)
encode_str : JsonEncoding, Str, JsonEncodeState -> Try(JsonEncodeState, _never_fails)
encode_bool : JsonEncoding, Bool, JsonEncodeState -> Try(JsonEncodeState, _never_fails)
encode_u8 : JsonEncoding, U8, JsonEncodeState -> Try(JsonEncodeState, _never_fails)
encode_i8 : JsonEncoding, I8, JsonEncodeState -> Try(JsonEncodeState, _never_fails)
encode_u16 : JsonEncoding, U16, JsonEncodeState -> Try(JsonEncodeState, _never_fails)
encode_i16 : JsonEncoding, I16, JsonEncodeState -> Try(JsonEncodeState, _never_fails)
encode_u32 : JsonEncoding, U32, JsonEncodeState -> Try(JsonEncodeState, _never_fails)
encode_i32 : JsonEncoding, I32, JsonEncodeState -> Try(JsonEncodeState, _never_fails)
encode_u64 : JsonEncoding, U64, JsonEncodeState -> Try(JsonEncodeState, _never_fails)
encode_i64 : JsonEncoding, I64, JsonEncodeState -> Try(JsonEncodeState, _never_fails)
encode_u128 : JsonEncoding, U128, JsonEncodeState -> Try(JsonEncodeState, _never_fails)
encode_i128 : JsonEncoding, I128, JsonEncodeState -> Try(JsonEncodeState, _never_fails)
encode_dec : JsonEncoding, Dec, JsonEncodeState -> Try(JsonEncodeState, _never_fails)
encode_f32 : JsonEncoding, F32, JsonEncodeState -> Try(JsonEncodeState, [Infinity, NaN, NegativeInfinity])
encode_f64 : JsonEncoding, F64, JsonEncodeState -> Try(JsonEncodeState, [Infinity, NaN, NegativeInfinity])
encode_null : JsonEncoding, JsonEncodeState -> Try(JsonEncodeState, _never_fails)
encode_record : JsonEncoding, JsonEncodeState, U64, (JsonEncodeState, (JsonEncodeState, Str, (JsonEncodeState -> Try(JsonEncodeState, err)) -> Try(JsonEncodeState, err)) -> Try(JsonEncodeState, err)) -> Try(JsonEncodeState, err)
encode_tuple : JsonEncoding, JsonEncodeState, U64, (JsonEncodeState, (JsonEncodeState, (JsonEncodeState -> Try(JsonEncodeState, err)) -> Try(JsonEncodeState, err)) -> Try(JsonEncodeState, err)) -> Try(JsonEncodeState, err)
encode_list : JsonEncoding, JsonEncodeState, U64, (JsonEncodeState, (JsonEncodeState, (JsonEncodeState -> Try(JsonEncodeState, err)) -> Try(JsonEncodeState, err)) -> Try(JsonEncodeState, err)) -> Try(JsonEncodeState, err)
to_str : a -> Str where { a.encoder_for : JsonEncoding -> a, JsonEncodeState -> Try(JsonEncodeState, []) }
to_str_try : a -> Try(Str, err) where { a.encoder_for : JsonEncoding -> a, JsonEncodeState -> Try(JsonEncodeState, err) }

Encode a value as JSON text, returning Err when the value cannot be represented in JSON. For example, F32 and F64 values can be finite numbers, NaN, positive infinity, or negative infinity, but JSON can only represent the finite number case.

parse : Str -> Try(a, ParseErr) where { a.parser_for : JsonEncoding -> JsonState -> Try({ value : a, rest : JsonState }, ParseErr) }
parse_trailing_commas : Str -> Try(a, ParseErr) where { a.parser_for : JsonEncoding -> JsonState -> Try({ value : a, rest : JsonState }, ParseErr) }
parser_camel : -> Str -> Try(a, ParseErr) where { a.parser_for : JsonEncoding -> JsonState -> Try({ value : a, rest : JsonState }, ParseErr) }
invalid_json : ParseErr
parse_json_bool : Str -> Try({ value : Bool, rest : JsonState }, ParseErr)
parse_json_null : Str -> Try(JsonState, ParseErr)
parse_array_start_from_json : Str -> Try(JsonState, ParseErr)
parse_array_next_from_json : Str -> Try([Element(JsonState), Done(JsonState)], ParseErr)
parse_array_after_element_from_json : JsonEncoding, Str -> Try([Continue(JsonState), Done(JsonState)], ParseErr)
parse_json_unsigned_int : Str, (Str -> Try(a, [BadNumStr])) -> Try({ value : a, rest : JsonState }, ParseErr)
parse_json_signed_int : Str, (Str -> Try(a, [BadNumStr])) -> Try({ value : a, rest : JsonState }, ParseErr)
parse_json_number : Str, (Str -> Try(a, [BadNumStr])) -> Try({ value : a, rest : JsonState }, ParseErr)
dec_from_json_number : Str -> Try(Dec, [BadNumStr])
split_json_number_exponent : Str -> Try({ mantissa : Str, exponent : Str }, [NotFound])
dec_from_json_exponent_parts : Str, Str -> Try(Dec, [BadNumStr])
json_dec_digits_are_zero : Str -> Bool
trim_json_dec_leading_zeros : Str, I64 -> { digits : Str, digits_len : U64, point : I64 }
normalize_json_dec_digits : Bool, Str, U64, I64 -> Try(Str, [BadNumStr])
parse_json_key_unsigned_int : Str, (Str -> Try(a, [BadNumStr])) -> Try(a, ParseErr)
parse_json_key_signed_int : Str, (Str -> Try(a, [BadNumStr])) -> Try(a, ParseErr)
parse_json_key_number : Str, (Str -> Try(a, [BadNumStr])) -> Try(a, ParseErr)
encode_json_number : Str, JsonEncodeState -> Try(JsonEncodeState, _never_fails)
container_needs_comma : JsonEncodeState -> Bool
mark_container_has_item : List(Bool) -> List(Bool)
write_record_start : JsonEncodeState -> Try(JsonEncodeState, _never_fails)
write_record_field : JsonEncodeState, Str, (JsonEncodeState -> Try(JsonEncodeState, err)) -> Try(JsonEncodeState, err)
write_record_end : JsonEncodeState -> Try(JsonEncodeState, _never_fails)
write_sequence_start : JsonEncodeState -> Try(JsonEncodeState, _never_fails)
write_sequence_element : JsonEncodeState, (JsonEncodeState -> Try(JsonEncodeState, err)) -> Try(JsonEncodeState, err)
write_sequence_end : JsonEncodeState -> Try(JsonEncodeState, _never_fails)
append_json_string_bytes : List(U8), Str -> List(U8)
append_json_quoted_string : List(U8), Str -> List(U8)
append_json_string_byte : List(U8), U8 -> List(U8)
append_json_unicode_escape : List(U8), U8 -> List(U8)
hex_digit_byte : U8 -> U8
parse_record_field_from_object : JsonEncoding, Str -> Try([Field({ field : FieldName(_shape), rest : JsonState }), TryField({ name : Str, rest : JsonState }), TryFieldCaseless({ name : Str, rest : JsonState }), Continue({ rest : JsonState }), Done({ rest : JsonState })], ParseErr)
parse_record_field_after_object_start : a, Str -> Try([Done({ rest : JsonState }), TryField({ name : Str, rest : JsonState })], ParseErr)
parse_record_field_after_value : JsonEncoding, Str -> Try([Done({ rest : JsonState }), ..[TryField({ name : Str, rest : JsonState })]], ParseErr)
parse_record_field_start : a, Str -> Try([TryField({ name : Str, rest : JsonState })], ParseErr)
snake_to_camel : Str -> Str
upper_first_ascii : Str -> Str
skip_json_value : JsonEncoding, JsonState -> Try(JsonState, ParseErr)
skip_json_object : JsonEncoding, Str -> Try(JsonState, ParseErr)
skip_json_array : JsonEncoding, Str -> Try(JsonState, ParseErr)
parse_tag_union_from_json : Str, JsonEncoding, ParseTagUnionSpec(a) -> Try({ value : a, rest : JsonState }, ParseErr)
finish_tag_payload : JsonEncoding, a, Str -> Try({ value : a, rest : JsonState }, ParseErr)
consume_empty_json_object : Str -> Try({ after : Str }, ParseErr)
is_json_scalar : Str -> Bool
is_json_number : Str -> Bool
is_json_u64_literal : Str -> Bool
is_json_unsigned_int_literal : Str -> Bool
is_json_signed_int_literal : Str -> Bool
is_json_digit : U8 -> Bool
is_json_digit_one_to_nine : U8 -> Bool
is_json_exponent_marker : U8 -> Bool
is_json_sign : U8 -> Bool
split_json_string_tail : Str -> Try({ value : Str, after : Str }, ParseErr)
split_json_scalar_tail : Str -> Try({ value : Str, after : Str }, ParseErr)
ParseErr : [MissingRequiredField(Str), InvalidJson(Str)]

JsonEncoding

rename_field : JsonEncoding, Str -> Str
allows_trailing_commas : JsonEncoding -> Bool
parse_str : JsonEncoding, JsonState -> Try({ value : Str, rest : JsonState }, ParseErr)
parse_bool : JsonEncoding, JsonState -> Try({ value : Bool, rest : JsonState }, ParseErr)
parse_u8 : JsonEncoding, JsonState -> Try({ value : U8, rest : JsonState }, ParseErr)
parse_i8 : JsonEncoding, JsonState -> Try({ value : I8, rest : JsonState }, ParseErr)
parse_u16 : JsonEncoding, JsonState -> Try({ value : U16, rest : JsonState }, ParseErr)
parse_i16 : JsonEncoding, JsonState -> Try({ value : I16, rest : JsonState }, ParseErr)
parse_u32 : JsonEncoding, JsonState -> Try({ value : U32, rest : JsonState }, ParseErr)
parse_i32 : JsonEncoding, JsonState -> Try({ value : I32, rest : JsonState }, ParseErr)
parse_u64 : JsonEncoding, JsonState -> Try({ value : U64, rest : JsonState }, ParseErr)
parse_i64 : JsonEncoding, JsonState -> Try({ value : I64, rest : JsonState }, ParseErr)
parse_u128 : JsonEncoding, JsonState -> Try({ value : U128, rest : JsonState }, ParseErr)
parse_i128 : JsonEncoding, JsonState -> Try({ value : I128, rest : JsonState }, ParseErr)
parse_dec : JsonEncoding, JsonState -> Try({ value : Dec, rest : JsonState }, ParseErr)
parse_f32 : JsonEncoding, JsonState -> Try({ value : F32, rest : JsonState }, ParseErr)
parse_f64 : JsonEncoding, JsonState -> Try({ value : F64, rest : JsonState }, ParseErr)
parse_null : JsonEncoding, JsonState -> Try(JsonState, ParseErr)
parse_array_start : JsonEncoding, JsonState -> Try(JsonState, ParseErr)
parse_array_next : JsonEncoding, JsonState -> Try([Element(JsonState), Done(JsonState)], ParseErr)
parse_array_after_element : JsonEncoding, JsonState -> Try([Continue(JsonState), Done(JsonState)], ParseErr)
parse_record_field : JsonEncoding, FieldNames(_shape), JsonState -> Try([Field({ field : FieldName(_shape), rest : JsonState }), TryField({ name : Str, rest : JsonState }), TryFieldCaseless({ name : Str, rest : JsonState }), Continue({ rest : JsonState }), Done({ rest : JsonState })], ParseErr)
parse_object_next : JsonEncoding, JsonState -> Try([Entry({ key : Str, rest : JsonState }), Done({ rest : JsonState })], ParseErr)
skip_record_field : JsonEncoding, JsonState -> Try(JsonState, ParseErr)
missing_record_field : JsonEncoding, Str, JsonState -> ParseErr
missing_optional_field : JsonEncoding, Str, JsonState -> [Missing, ..]
invalid_value : JsonEncoding, JsonState -> ParseErr
parse_tag_union : JsonEncoding, ParseTagUnionSpec(a), JsonState -> Try({ value : a, rest : JsonState }, ParseErr)
encode_record : JsonEncodeState, U64, (JsonEncodeState, (JsonEncodeState, Str, (JsonEncodeState -> Try(JsonEncodeState, err)) -> Try(JsonEncodeState, err)) -> Try(JsonEncodeState, err)) -> Try(JsonEncodeState, err)
encode_tuple : JsonEncodeState, U64, (JsonEncodeState, (JsonEncodeState, (JsonEncodeState -> Try(JsonEncodeState, err)) -> Try(JsonEncodeState, err)) -> Try(JsonEncodeState, err)) -> Try(JsonEncodeState, err)
encode_list : JsonEncodeState, U64, (JsonEncodeState, (JsonEncodeState, (JsonEncodeState -> Try(JsonEncodeState, err)) -> Try(JsonEncodeState, err)) -> Try(JsonEncodeState, err)) -> Try(JsonEncodeState, err)
encode_str : Str, JsonEncodeState -> Try(JsonEncodeState, _never_fails)
encode_bool : Bool, JsonEncodeState -> Try(JsonEncodeState, _never_fails)
encode_u8 : U8, JsonEncodeState -> Try(JsonEncodeState, _never_fails)
encode_i8 : I8, JsonEncodeState -> Try(JsonEncodeState, _never_fails)
encode_u16 : U16, JsonEncodeState -> Try(JsonEncodeState, _never_fails)
encode_i16 : I16, JsonEncodeState -> Try(JsonEncodeState, _never_fails)
encode_u32 : U32, JsonEncodeState -> Try(JsonEncodeState, _never_fails)
encode_i32 : I32, JsonEncodeState -> Try(JsonEncodeState, _never_fails)
encode_u64 : U64, JsonEncodeState -> Try(JsonEncodeState, _never_fails)
encode_i64 : I64, JsonEncodeState -> Try(JsonEncodeState, _never_fails)
encode_u128 : U128, JsonEncodeState -> Try(JsonEncodeState, _never_fails)
encode_i128 : I128, JsonEncodeState -> Try(JsonEncodeState, _never_fails)
encode_dec : Dec, JsonEncodeState -> Try(JsonEncodeState, _never_fails)
encode_f32 : F32, JsonEncodeState -> Try(JsonEncodeState, [Infinity, NaN, NegativeInfinity])
encode_f64 : F64, JsonEncodeState -> Try(JsonEncodeState, [Infinity, NaN, NegativeInfinity])
encode_null : JsonEncodeState -> Try(JsonEncodeState, _never_fails)
parse_key_str : JsonEncoding, Str -> Try(Str, ParseErr)
parse_key_bool : JsonEncoding, Str -> Try(Bool, ParseErr)
parse_key_u8 : JsonEncoding, Str -> Try(U8, ParseErr)
parse_key_i8 : JsonEncoding, Str -> Try(I8, ParseErr)
parse_key_u16 : JsonEncoding, Str -> Try(U16, ParseErr)
parse_key_i16 : JsonEncoding, Str -> Try(I16, ParseErr)
parse_key_u32 : JsonEncoding, Str -> Try(U32, ParseErr)
parse_key_i32 : JsonEncoding, Str -> Try(I32, ParseErr)
parse_key_u64 : JsonEncoding, Str -> Try(U64, ParseErr)
parse_key_i64 : JsonEncoding, Str -> Try(I64, ParseErr)
parse_key_u128 : JsonEncoding, Str -> Try(U128, ParseErr)
parse_key_i128 : JsonEncoding, Str -> Try(I128, ParseErr)
parse_key_dec : JsonEncoding, Str -> Try(Dec, ParseErr)
parse_key_f32 : JsonEncoding, Str -> Try(F32, ParseErr)
parse_key_f64 : JsonEncoding, Str -> Try(F64, ParseErr)
encode_key_str : JsonEncoding, Str -> Try(Str, _never_fails)
encode_key_bool : JsonEncoding, Bool -> Try(Str, _never_fails)
encode_key_u8 : JsonEncoding, U8 -> Try(Str, _never_fails)
encode_key_i8 : JsonEncoding, I8 -> Try(Str, _never_fails)
encode_key_u16 : JsonEncoding, U16 -> Try(Str, _never_fails)
encode_key_i16 : JsonEncoding, I16 -> Try(Str, _never_fails)
encode_key_u32 : JsonEncoding, U32 -> Try(Str, _never_fails)
encode_key_i32 : JsonEncoding, I32 -> Try(Str, _never_fails)
encode_key_u64 : JsonEncoding, U64 -> Try(Str, _never_fails)
encode_key_i64 : JsonEncoding, I64 -> Try(Str, _never_fails)
encode_key_u128 : JsonEncoding, U128 -> Try(Str, _never_fails)
encode_key_i128 : JsonEncoding, I128 -> Try(Str, _never_fails)
encode_key_dec : JsonEncoding, Dec -> Try(Str, _never_fails)
encode_key_f32 : JsonEncoding, F32 -> Try(Str, [Infinity, NaN, NegativeInfinity])
encode_key_f64 : JsonEncoding, F64 -> Try(Str, [Infinity, NaN, NegativeInfinity])

HttpHeaderEncoding

rename_field : HttpHeaderEncoding, Str -> Str
parse_str : HttpHeaderEncoding, HttpHeaderState -> Try({ value : Str, rest : HttpHeaderState }, HttpHeader)
parse_u64 : HttpHeaderEncoding, HttpHeaderState -> Try({ value : U64, rest : HttpHeaderState }, HttpHeader)
parse_record_field : HttpHeaderEncoding, FieldNames(_shape), HttpHeaderState -> Try([Field({ field : FieldName(_shape), rest : HttpHeaderState }), TryField({ name : Str, rest : HttpHeaderState }), TryFieldCaseless({ name : Str, rest : HttpHeaderState }), Continue({ rest : HttpHeaderState }), Done({ rest : HttpHeaderState })], HttpHeader)
skip_record_field : HttpHeaderEncoding, HttpHeaderState -> Try(HttpHeaderState, HttpHeader)
missing_record_field : HttpHeaderEncoding, Str, HttpHeaderState -> HttpHeader
missing_optional_field : HttpHeaderEncoding, Str, HttpHeaderState -> [Missing]

HttpHeader

:= [MissingRequired, BadHeader]
parser_for : -> Str -> Try(output, HttpHeader) where { output.parser_for : HttpHeaderEncoding -> HttpHeaderState -> Try({ value : output, rest : HttpHeaderState }, HttpHeader) }
parse : Str -> Try(output, HttpHeader) where { output.parser_for : HttpHeaderEncoding -> HttpHeaderState -> Try({ value : output, rest : HttpHeaderState }, HttpHeader) }
parse_str : HttpHeaderEncoding, HttpHeaderState -> Try({ value : Str, rest : HttpHeaderState }, HttpHeader)
parse_u64 : HttpHeaderEncoding, HttpHeaderState -> Try({ value : U64, rest : HttpHeaderState }, HttpHeader)
parse_record_field_from_headers : FieldNames(_shape), Str -> Try([Field({ field : FieldName(_shape), rest : HttpHeaderState }), TryField({ name : Str, rest : HttpHeaderState }), TryFieldCaseless({ name : Str, rest : HttpHeaderState }), Continue({ rest : HttpHeaderState }), Done({ rest : HttpHeaderState })], HttpHeader)
take_header_value : Str -> Try({ value : Str, after : Str }, HttpHeader)
underscores_to_dashes : Str -> Str