When called on a Codec[L] for some L <: HList, returns a new codec that encodes/decodes
the HList L followed by a B.
When called on a Codec[L] for some L <: HList, returns a new codec that encodes/decodes
the HList L followed by a B.
That is, this operator is a codec-level HList append operation.
When called on a Codec[L] for some L <: HList, returns a new codec representing Codec[B :: L].
When called on a Codec[L] for some L <: HList, returns a new codec representing Codec[B :: L].
That is, this operator is a codec-level HList prepend operation.
codec to prepend
When called on a Codec[L] for some L <: HList, returns a new codec that encodes/decodes
the HList K followed by the HList L.
When called on a Codec[L] for some L <: HList, returns a new codec that encodes/decodes
B :: L but only returns L.
When called on a Codec[L] for some L <: HList, returns a new codec that encodes/decodes
B :: L but only returns L. HList equivalent of ~>.
Supports building a Codec[M] for some HList M where M is the HList that results in removing
the first A from L.
Supports building a Codec[M] for some HList M where M is the HList that results in removing
the first A from L.
Example usage:
case class Flags(x: Boolean, y: Boolean, z: Boolean) val c = (bool :: bool :: bool :: ignore(5)).flatPrepend { flgs => conditional(flgs.x, uint8) :: conditional(flgs.y, uint8) :: conditional(flgs.z, uint8) } c.derive[Flags].from { case x :: y :: z :: HNil => Flags(x.isDefined, y.isDefined, z.isDefined) }
This codec, the Codec[L], is used for encoding/decoding. When decoding, the first value of type
A is removed from the HList.
When encoding, the returned codec computes an A value using the supplied
function and inserts the computed A in to the HList M, yielding an HList L. That HList L
is then encoded using the original codec.
This method is called derive because the value of type A is derived from the other fields
in the HList L.
type to remove from L and derive from the resulting list
Creates a new codec with all unit values filtered out.
When called on a Codec[L] for some L <: HList, returns a new codec that encodes/decodes
the HList L followed by the value A, where the latter is encoded/decoded with the codec
returned from applying L to f.
When called on a Codec[L] for some L <: HList, returns a new codec that encodes/decodes
the HList L followed by the HList M, where the latter is encoded/decoded with the codec
returned from applying L to f.
Polymorphic function version of xmap.
Polymorphic function version of xmap.
When called on a Codec[L] for some L <: HList, returns a new codec that's the result of
xmapping with p and q, using p to convert from L to M and using q to convert from
M to L.
polymorphic function that converts from L to M
polymorphic function that converts from M to L
Polymorphic function version of xmap that uses a single polymorphic function in both directions.
Polymorphic function version of xmap that uses a single polymorphic function in both directions.
When called on a Codec[L] for some L <: HList, returns a new codec that's the result of
xmapping with p for both forward and reverse directions.
polymorphic function that converts from L to M and from M to L
Provides common operations on a
Codec[HList].