Encoding

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_next : JsonEncoding, JsonState -> Try([Element(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) }
parse_json_bool : Str -> Try({ value : Bool, 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)
write_record_field : JsonEncodeState, Str, (JsonEncodeState -> Try(JsonEncodeState, err)) -> Try(JsonEncodeState, err)
write_sequence_element : JsonEncodeState, (JsonEncodeState -> Try(JsonEncodeState, err)) -> Try(JsonEncodeState, err)
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)
finish_tag_payload : JsonEncoding, a, Str -> Try({ value : a, rest : JsonState }, ParseErr)
ParseErr : [MissingRequiredField(Str), InvalidJson(Str)]

JsonEncoding

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_next : JsonEncoding, JsonState -> Try([Element(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)
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)

HttpHeaderEncoding

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)

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)