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).

Search Document