object Codec extends EncoderFunctions with DecoderFunctions
- Grouped
- Alphabetic
- By Inheritance
- Codec
- DecoderFunctions
- EncoderFunctions
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
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[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
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: scala.collection.compat.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: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- 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( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )