distribute/codec/composite
Values
pub fn option(
inner: codec.Codec(a),
) -> codec.Codec(option.Option(a))
pub fn option_decoder(
inner: fn(BitArray) -> Result(a, codec.DecodeError),
) -> fn(BitArray) -> Result(option.Option(a), codec.DecodeError)
pub fn option_encoder(
inner: fn(a) -> Result(BitArray, codec.EncodeError),
) -> fn(option.Option(a)) -> Result(BitArray, codec.EncodeError)
Encoder for Option(a). None → <<0>>, Some(v) → <<1, encoded_v>>.
pub fn option_sized_decoder(
inner: fn(BitArray) -> Result(#(a, BitArray), codec.DecodeError),
) -> fn(BitArray) -> Result(
#(option.Option(a), BitArray),
codec.DecodeError,
)
pub fn result_decoder(
ok_decoder: fn(BitArray) -> Result(a, codec.DecodeError),
error_decoder: fn(BitArray) -> Result(e, codec.DecodeError),
) -> fn(BitArray) -> Result(Result(a, e), codec.DecodeError)
pub fn result_encoder(
ok_encoder: fn(a) -> Result(BitArray, codec.EncodeError),
error_encoder: fn(e) -> Result(BitArray, codec.EncodeError),
) -> fn(Result(a, e)) -> Result(BitArray, codec.EncodeError)
Encoder for Result(a, e). Ok → <<0, encoded>>, Error → <<1, encoded>>.
pub fn result_sized_decoder(
ok_decoder: fn(BitArray) -> Result(
#(a, BitArray),
codec.DecodeError,
),
error_decoder: fn(BitArray) -> Result(
#(e, BitArray),
codec.DecodeError,
),
) -> fn(BitArray) -> Result(
#(Result(a, e), BitArray),
codec.DecodeError,
)
pub fn tuple2(
first: codec.Codec(a),
second: codec.Codec(b),
) -> codec.Codec(#(a, b))
pub fn tuple2_decoder(
first: fn(BitArray) -> Result(#(a, BitArray), codec.DecodeError),
second: fn(BitArray) -> Result(
#(b, BitArray),
codec.DecodeError,
),
) -> fn(BitArray) -> Result(#(a, b), codec.DecodeError)
pub fn tuple2_encoder(
first: fn(a) -> Result(BitArray, codec.EncodeError),
second: fn(b) -> Result(BitArray, codec.EncodeError),
) -> fn(#(a, b)) -> Result(BitArray, codec.EncodeError)
Encoder for #(a, b). First element is length-prefixed (32-bit).
pub fn tuple2_sized_decoder(
first: fn(BitArray) -> Result(#(a, BitArray), codec.DecodeError),
second: fn(BitArray) -> Result(
#(b, BitArray),
codec.DecodeError,
),
) -> fn(BitArray) -> Result(
#(#(a, b), BitArray),
codec.DecodeError,
)
pub fn tuple3(
first: codec.Codec(a),
second: codec.Codec(b),
third: codec.Codec(c),
) -> codec.Codec(#(a, b, c))
pub fn tuple3_decoder(
first: fn(BitArray) -> Result(#(a, BitArray), codec.DecodeError),
second: fn(BitArray) -> Result(
#(b, BitArray),
codec.DecodeError,
),
third: fn(BitArray) -> Result(#(c, BitArray), codec.DecodeError),
) -> fn(BitArray) -> Result(#(a, b, c), codec.DecodeError)
pub fn tuple3_encoder(
first: fn(a) -> Result(BitArray, codec.EncodeError),
second: fn(b) -> Result(BitArray, codec.EncodeError),
third: fn(c) -> Result(BitArray, codec.EncodeError),
) -> fn(#(a, b, c)) -> Result(BitArray, codec.EncodeError)
Encoder for #(a, b, c). First two elements are length-prefixed (32-bit).
pub fn tuple3_sized_decoder(
first: fn(BitArray) -> Result(#(a, BitArray), codec.DecodeError),
second: fn(BitArray) -> Result(
#(b, BitArray),
codec.DecodeError,
),
third: fn(BitArray) -> Result(#(c, BitArray), codec.DecodeError),
) -> fn(BitArray) -> Result(
#(#(a, b, c), BitArray),
codec.DecodeError,
)