distribute/codec/builder
Values
pub fn custom2(
encoder1: fn(a) -> Result(BitArray, codec.EncodeError),
encoder2: fn(b) -> Result(BitArray, codec.EncodeError),
decoder1: fn(BitArray) -> Result(a, codec.DecodeError),
decoder2: fn(BitArray) -> Result(b, codec.DecodeError),
constructor: fn(a, b) -> c,
destructor: fn(c) -> #(a, b),
) -> #(
fn(c) -> Result(BitArray, codec.EncodeError),
fn(BitArray) -> Result(c, codec.DecodeError),
)
Build a codec for a custom type with 2 fields.
pub fn custom3(
encoder1: fn(a) -> Result(BitArray, codec.EncodeError),
encoder2: fn(b) -> Result(BitArray, codec.EncodeError),
encoder3: fn(c) -> Result(BitArray, codec.EncodeError),
decoder1: fn(BitArray) -> Result(a, codec.DecodeError),
decoder2: fn(BitArray) -> Result(b, codec.DecodeError),
decoder3: fn(BitArray) -> Result(c, codec.DecodeError),
constructor: fn(a, b, c) -> d,
destructor: fn(d) -> #(a, b, c),
) -> #(
fn(d) -> Result(BitArray, codec.EncodeError),
fn(BitArray) -> Result(d, codec.DecodeError),
)
Build a codec for a custom type with 3 fields.
pub fn enum_codec(
to_int: fn(a) -> Int,
from_int: fn(Int) -> Result(a, Nil),
) -> #(
fn(a) -> Result(BitArray, codec.EncodeError),
fn(BitArray) -> Result(a, codec.DecodeError),
)
Build a codec for an enum (variant type without payloads).