object Codec extends EncoderFunctions with DecoderFunctions
- Grouped
- Alphabetic
- By Inheritance
- Codec
- DecoderFunctions
- EncoderFunctions
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##(): Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def apply[A](implicit c: Lazy[Codec[A]]): Codec[A]
Gets an implicitly available codec for type
A
.Gets an implicitly available codec for type
A
.If an implicit
Codec[A]
is not available, one might be able to be derived automatically. Codecs can be derived for:- case classes (and hlists and records), where each component type of the case class either has an implicitly available codec or one can be automatically derived
- sealed class hierarchies (and coproducts and unions), where:
- the root type,
A
, has an implicitly availableDiscriminated[A, D]
for someD
- each subtype has an implicitly available codec or can have one derived
- each subtype
X
has an implicitly availableDiscriminator[A, X, D]
- the root type,
- def apply[A](encoder: Encoder[A], decoder: Decoder[A]): Codec[A]
Creates a codec from an encoder and a decoder.
- def apply[A](encoder: (A) => Attempt[BitVector], decoder: (BitVector) => Attempt[DecodeResult[A]]): Codec[A]
Creates a codec from encoder and decoder functions.
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- final def choiceDecoder[A](decoders: Decoder[A]*): Decoder[A]
Creates a decoder that decodes with each of the specified decoders, returning the first successful result.
Creates a decoder that decodes with each of the specified decoders, returning the first successful result.
- Definition Classes
- DecoderFunctions
- final def choiceEncoder[A](encoders: Encoder[A]*): Encoder[A]
Creates an encoder that encodes with each of the specified encoders, returning the first successful result.
Creates an encoder that encodes with each of the specified encoders, returning the first successful result.
- Definition Classes
- EncoderFunctions
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def coproduct[A](implicit auto: CoproductBuilderAuto[A]): Out
Creates a coproduct codec builder for the specified type.
Creates a coproduct codec builder for the specified type.
Support exists for coproducts and unions. Each component type must have an implicitly available codec.
For example:
type C = Foo :+: Bar :+: Baz :+: CNil val codec = Codec.coproduct[C].choice codec.encode(Coproduct[C](Foo(...)))
- def decode[A](bits: BitVector)(implicit c: Lazy[Codec[A]]): Attempt[DecodeResult[A]]
Decodes the specified bit vector in to a value of type
A
using an implicitly available codec. - final def decodeAll[A, B](buffer: BitVector)(zero: B, append: (B, B) => B)(f: (A) => B)(implicit decoder: Lazy[Decoder[A]]): (Option[Err], B)
Repeatedly decodes values of type
A
from the specified vector, converts each value to aB
and appends it to an accumulator of typeB
using the suppliedzero
value andappend
function.Repeatedly decodes values of type
A
from the specified vector, converts each value to aB
and appends it to an accumulator of typeB
using the suppliedzero
value andappend
function. Terminates when no more bits are available in the vector. Exits upon first decoding error.- returns
tuple consisting of the terminating error if any and the accumulated value
- Definition Classes
- DecoderFunctions
- final def decodeBoth[A, B](decA: Decoder[A], decB: Decoder[B])(buffer: BitVector): Attempt[DecodeResult[(A, B)]]
Decodes a tuple
(A, B)
by first decodingA
and then using the remaining bits to decodeB
.Decodes a tuple
(A, B)
by first decodingA
and then using the remaining bits to decodeB
.- Definition Classes
- DecoderFunctions
- final def decodeBothCombine[A, B, C](decA: Decoder[A], decB: Decoder[B])(buffer: BitVector)(f: (A, B) => C): Attempt[DecodeResult[C]]
Decodes a
C
by first decodingA
and then using the remaining bits to decodeB
, then applying the decoded values to the specified function to generate aC
.Decodes a
C
by first decodingA
and then using the remaining bits to decodeB
, then applying the decoded values to the specified function to generate aC
.- Definition Classes
- DecoderFunctions
- final def decodeCollect[F[_], A](dec: Decoder[A], limit: Option[Int])(buffer: BitVector)(implicit cbf: Factory[A, F[A]]): Attempt[DecodeResult[F[A]]]
Repeatedly decodes values of type
A
from the specified vector and returns a collection of the specified type.Repeatedly decodes values of type
A
from the specified vector and returns a collection of the specified type. Terminates when no more bits are available in the vector or whenlimit
is defined and that many records have been decoded. Exits upon first decoding error.- Definition Classes
- DecoderFunctions
- implicit def deriveCoproduct[A, D, C0 <: Coproduct](implicit discriminated: Discriminated[A, D], auto: CoproductBuilderAuto[A] { type C = C0 }, auto2: CoproductBuilderAutoDiscriminators[A, C0, D]): Codec[A]
Supports derived codecs.
- implicit val deriveHNil: Codec[HNil]
Supports derived codecs.
- implicit def deriveLabelledGeneric[A, Rec <: HList](implicit lgen: Aux[A, Rec], auto: Lazy[Codec[Rec]]): Codec[A]
Supports derived codecs.
- implicit def deriveProduct[H, T <: HList](implicit headCodec: Lazy[Codec[H]], tailAux: Lazy[Codec[T]]): Codec[::[H, T]]
Supports derived codecs.
- implicit def deriveRecord[KH <: Symbol, VH, TRec <: HList, KT <: HList](implicit keys: Aux[::[FieldType[KH, VH], TRec], ::[KH, KT]], headCodec: Lazy[Codec[VH]], tailAux: Lazy[Codec[TRec]]): Codec[::[FieldType[KH, VH], TRec]]
Supports derived codecs.
- def encode[A](a: A)(implicit c: Lazy[Codec[A]]): Attempt[BitVector]
Encodes the specified value to a bit vector using an implicitly available codec.
- final def encodeBoth[A, B](encA: Encoder[A], encB: Encoder[B])(a: A, b: B): Attempt[BitVector]
Encodes the specified values, one after the other, to a bit vector using the specified encoders.
Encodes the specified values, one after the other, to a bit vector using the specified encoders.
- Definition Classes
- EncoderFunctions
- final def encodeSeq[A](enc: Encoder[A])(seq: Seq[A]): Attempt[BitVector]
Encodes all elements of the specified sequence and concatenates the results, or returns the first encountered error.
Encodes all elements of the specified sequence and concatenates the results, or returns the first encountered error.
- Definition Classes
- EncoderFunctions
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def lazily[A](codec: => Codec[A]): Codec[A]
Provides a
Codec[A]
that delegates to a lazily evaluatedCodec[A]
.Provides a
Codec[A]
that delegates to a lazily evaluatedCodec[A]
. Typically used to consruct codecs for recursive structures. - final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- implicit val transformInstance: Transform[Codec]
Transform typeclass instance.
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()