final class Tuple8Codec[A, B, C, D, E, F, G, H] extends Codec[(A, B, C, D, E, F, G, H)]
- Source
- TupleCodec.scala
- Alphabetic
- By Inheritance
- Tuple8Codec
- Codec
- GenCodec
- Decoder
- Encoder
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- def :+:[B](left: Codec[B]): CoproductCodecBuilder[:+:[B, :+:[(A, B, C, D, E, F, G, H), CNil]], ::[Codec[B], ::[Codec[(A, B, C, D, E, F, G, H)], HNil]], :+:[B, :+:[(A, B, C, D, E, F, G, H), CNil]]]
Supports creation of a coproduct codec.
Supports creation of a coproduct codec. See scodec.codecs.CoproductCodecBuilder for details.
- Definition Classes
- Codec
- final def <~[B](codecB: Codec[B])(implicit ev: =:=[Unit, B]): Codec[(A, B, C, D, E, F, G, H)]
Assuming
B
isUnit
, creates aCodec[A]
that: encodes theA
followed by a unit; decodes anA
followed by a unit and discards the decoded unit. - final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def >>~[B](f: ((A, B, C, D, E, F, G, H)) => Codec[B]): Codec[((A, B, C, D, E, F, G, H), B)]
Returns a new codec that encodes/decodes a value of type
(A, B)
where the codec ofB
is dependent onA
. - def asDecoder: Decoder[(A, B, C, D, E, F, G, H)]
Gets this as a
Decoder
.Gets this as a
Decoder
.- Definition Classes
- Decoder
- def asEncoder: Encoder[(A, B, C, D, E, F, G, H)]
Gets this as an
Encoder
.Gets this as an
Encoder
.- Definition Classes
- Encoder
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def compact: Codec[(A, B, C, D, E, F, G, H)]
Converts this codec to a new codec that compacts the encoded bit vector before returning it.
- final def complete: Codec[(A, B, C, D, E, F, G, H)]
Converts this codec to a new codec that fails decoding if there are remaining bits.
- final def consume[B](f: ((A, B, C, D, E, F, G, H)) => Codec[B])(g: (B) => (A, B, C, D, E, F, G, H)): Codec[B]
Similar to
flatZip
except theA
type is not visible in the resulting type -- the binary effects of theCodec[A]
still occur though.Similar to
flatZip
except theA
type is not visible in the resulting type -- the binary effects of theCodec[A]
still occur though.Example usage:
case class Flags(x: Boolean, y: Boolean, z: Boolean) (bool :: bool :: bool :: ignore(5)).consume { flgs => conditional(flgs.x, uint8) :: conditional(flgs.y, uint8) :: conditional(flgs.z, uint8) } { case x :: y :: z :: HNil => Flags(x.isDefined, y.isDefined, z.isDefined) } }
Note that when
B
is anHList
, this method is equivalent to usingflatPrepend
andderive
. That is,a.consume(f)(g) === a.flatPrepend(f).derive[A].from(g)
.- Definition Classes
- Codec
- def contramap[C](f: (C) => (A, B, C, D, E, F, G, H)): GenCodec[C, (A, B, C, D, E, F, G, H)]
Converts this
GenCodec
to aGenCodec[C, B]
using the suppliedC => A
. - def decode(bits: BitVector): Attempt[DecodeResult[(A, B, C, D, E, F, G, H)]]
Attempts to decode a value of type
A
from the specified bit vector.Attempts to decode a value of type
A
from the specified bit vector.- bits
bits to decode
- returns
error if value could not be decoded or the remaining bits and the decoded value
- Definition Classes
- Tuple8Codec → Decoder
- def decodeOnly[AA >: (A, B, C, D, E, F, G, H)]: Codec[AA]
Converts this to a codec that fails encoding with an error.
- final def decodeValue(bits: BitVector): Attempt[(A, B, C, D, E, F, G, H)]
Attempts to decode a value of type
A
from the specified bit vector and discards the remaining bits.Attempts to decode a value of type
A
from the specified bit vector and discards the remaining bits.- bits
bits to decode
- returns
error if value could not be decoded or the decoded value
- Definition Classes
- Decoder
- final def downcast[B <: (A, B, C, D, E, F, G, H)](implicit tb: Typeable[B]): Codec[B]
Safely lifts this codec to a codec of a subtype.
Safely lifts this codec to a codec of a subtype.
When a supertype of
B
that is not a supertype ofA
is decoded, an decoding error is returned.- Definition Classes
- Codec
- final def dropLeft[B](codecB: Codec[B])(implicit ev: =:=[Unit, (A, B, C, D, E, F, G, H)]): Codec[B]
Assuming
A
isUnit
, creates aCodec[B]
that: encodes the unit followed by aB
; decodes a unit followed by aB
and discards the decoded unit.Assuming
A
isUnit
, creates aCodec[B]
that: encodes the unit followed by aB
; decodes a unit followed by aB
and discards the decoded unit.- Definition Classes
- Codec
- final def dropRight[B](codecB: Codec[B])(implicit ev: =:=[Unit, B]): Codec[(A, B, C, D, E, F, G, H)]
Assuming
B
isUnit
, creates aCodec[A]
that: encodes theA
followed by a unit; decodes anA
followed by a unit and discards the decoded unit.Assuming
B
isUnit
, creates aCodec[A]
that: encodes theA
followed by a unit; decodes anA
followed by a unit and discards the decoded unit.- Definition Classes
- Codec
- def econtramap[C](f: (C) => Attempt[(A, B, C, D, E, F, G, H)]): GenCodec[C, (A, B, C, D, E, F, G, H)]
Converts this
GenCodec
to aGenCodec[C, B]
using the suppliedC => Attempt[A]
. - def emap[C](f: ((A, B, C, D, E, F, G, H)) => Attempt[C]): GenCodec[(A, B, C, D, E, F, G, H), C]
Converts this
GenCodec
to aGenCodec[A, C]
using the suppliedB => Attempt[C]
. - def encode(abcdefgh: (A, B, C, D, E, F, G, H)): Attempt[BitVector]
Attempts to encode the specified value in to a bit vector.
Attempts to encode the specified value in to a bit vector.
- returns
error or binary encoding of the value
- Definition Classes
- Tuple8Codec → Encoder
- def encodeOnly: Codec[(A, B, C, D, E, F, G, H)]
Converts this to a codec that fails decoding with an error.
Converts this to a codec that fails decoding with an error.
- Definition Classes
- Encoder
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def exmap[B](f: ((A, B, C, D, E, F, G, H)) => Attempt[B], g: (B) => Attempt[(A, B, C, D, E, F, G, H)]): Codec[B]
Transforms using two functions,
A => Attempt[B]
andB => Attempt[A]
.Transforms using two functions,
A => Attempt[B]
andB => Attempt[A]
.- Definition Classes
- Codec
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- def flatMap[B](f: ((A, B, C, D, E, F, G, H)) => Decoder[B]): Decoder[B]
Converts this decoder to a
Decoder[B]
using the suppliedA => Decoder[B]
.Converts this decoder to a
Decoder[B]
using the suppliedA => Decoder[B]
.- Definition Classes
- Decoder
- final def flatZip[B](f: ((A, B, C, D, E, F, G, H)) => Codec[B]): Codec[((A, B, C, D, E, F, G, H), B)]
Returns a new codec that encodes/decodes a value of type
(A, B)
where the codec ofB
is dependent onA
.Returns a new codec that encodes/decodes a value of type
(A, B)
where the codec ofB
is dependent onA
.- Definition Classes
- Codec
- final def flattenLeftPairs(implicit f: FlattenLeftPairs[(A, B, C, D, E, F, G, H)]): Codec[Out]
Converts this codec to an
HList
based codec by flattening all left nested pairs.Converts this codec to an
HList
based codec by flattening all left nested pairs. For example,flattenLeftPairs
on aCodec[(((A, B), C), D)]
results in aCodec[A :: B :: C :: D :: HNil]
. This is particularly useful when combined with~
,~>
, and<~
.- Definition Classes
- Codec
- final def fuse[AA <: (A, B, C, D, E, F, G, H), BB >: (A, B, C, D, E, F, G, H)](implicit ev: =:=[BB, AA]): Codec[BB]
Converts this generalized codec in to a non-generalized codec assuming
A
andB
are the same type.Converts this generalized codec in to a non-generalized codec assuming
A
andB
are the same type.- Definition Classes
- GenCodec
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def hlist: Codec[::[(A, B, C, D, E, F, G, H), HNil]]
Lifts this codec in to a codec of a singleton hlist.
Lifts this codec in to a codec of a singleton hlist.
- Definition Classes
- Codec
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def map[C](f: ((A, B, C, D, E, F, G, H)) => C): GenCodec[(A, B, C, D, E, F, G, H), C]
Converts this
GenCodec
to aGenCodec[A, C]
using the suppliedB => C
. - final def narrow[B](f: ((A, B, C, D, E, F, G, H)) => Attempt[B], g: (B) => (A, B, C, D, E, F, G, H)): Codec[B]
Transforms using two functions,
A => Attempt[B]
andB => A
.Transforms using two functions,
A => Attempt[B]
andB => A
.The supplied functions form an injection from
B
toA
. Hence, this method converts from a larger to a smaller type. Hence, the namenarrow
.- Definition Classes
- Codec
- 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 pairedWith[B](codecB: Codec[B]): Codec[((A, B, C, D, E, F, G, H), B)]
Creates a
Codec[(A, B)]
that first encodes/decodes anA
followed by aB
.Creates a
Codec[(A, B)]
that first encodes/decodes anA
followed by aB
.- Definition Classes
- Codec
- def pcontramap[C](f: (C) => Option[(A, B, C, D, E, F, G, H)]): GenCodec[C, (A, B, C, D, E, F, G, H)]
Converts this
GenCodec
to aGenCodec[C, B]
using the supplied partial function fromC
toA
. - def sizeBound: SizeBound
Provides a bound on the size of successfully encoded values.
Provides a bound on the size of successfully encoded values.
- Definition Classes
- Tuple8Codec → Encoder
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toField[K]: Codec[FieldType[K, (A, B, C, D, E, F, G, H)]]
Lifts this codec to a codec of a shapeless field -- allowing it to be used in records and unions.
Lifts this codec to a codec of a shapeless field -- allowing it to be used in records and unions.
- Definition Classes
- Codec
- def toFieldWithContext[K <: Symbol](k: K): Codec[FieldType[K, (A, B, C, D, E, F, G, H)]]
Lifts this codec to a codec of a shapeless field -- allowing it to be used in records and unions.
Lifts this codec to a codec of a shapeless field -- allowing it to be used in records and unions. The specified key is pushed in to the context of any errors that are returned from the resulting codec.
- Definition Classes
- Codec
- def toString(): String
- Definition Classes
- Tuple8Codec → AnyRef → Any
- final def tuple: Codec[::[(A, B, C, D, E, F, G, H), HNil]]
Alias for
.hlist
- allows cross compilation with Scodec 2 / Scala 3.Alias for
.hlist
- allows cross compilation with Scodec 2 / Scala 3.- Definition Classes
- Codec
- final def unit(zero: (A, B, C, D, E, F, G, H)): Codec[Unit]
Converts this to a
Codec[Unit]
that encodes using the specified zero value and decodes a unit value when this codec decodes anA
successfully.Converts this to a
Codec[Unit]
that encodes using the specified zero value and decodes a unit value when this codec decodes anA
successfully.- Definition Classes
- Codec
- final def upcast[B >: (A, B, C, D, E, F, G, H)](implicit ta: Typeable[(A, B, C, D, E, F, G, H)]): Codec[B]
Safely lifts this codec to a codec of a supertype.
Safely lifts this codec to a codec of a supertype.
When a subtype of
B
that is not a subtype ofA
is passed to encode, an encoding error is returned.- Definition Classes
- Codec
- 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()
- final def widen[B](f: ((A, B, C, D, E, F, G, H)) => B, g: (B) => Attempt[(A, B, C, D, E, F, G, H)]): Codec[B]
Transforms using two functions,
A => B
andB => Attempt[A]
.Transforms using two functions,
A => B
andB => Attempt[A]
.The supplied functions form an injection from
A
toB
. Hence, this method converts from a smaller to a larger type. Hence, the namewiden
.- Definition Classes
- Codec
- def widenAs[X](to: (A, B, C, D, E, F, G, H) => X, from: (X) => Option[(A, B, C, D, E, F, G, H)]): Codec[X]
- final def withContext(context: String): Codec[(A, B, C, D, E, F, G, H)]
Creates a new codec that is functionally equivalent to this codec but pushes the specified context string in to any errors returned from encode or decode.
Creates a new codec that is functionally equivalent to this codec but pushes the specified context string in to any errors returned from encode or decode.
- Definition Classes
- Codec
- final def withToString(str: => String): Codec[(A, B, C, D, E, F, G, H)]
Creates a new codec that is functionally equivalent to this codec but returns the specified string from
toString
.Creates a new codec that is functionally equivalent to this codec but returns the specified string from
toString
.- Definition Classes
- Codec
- final def xmap[B](f: ((A, B, C, D, E, F, G, H)) => B, g: (B) => (A, B, C, D, E, F, G, H)): Codec[B]
Transforms using the isomorphism described by two functions,
A => B
andB => A
.Transforms using the isomorphism described by two functions,
A => B
andB => A
.- Definition Classes
- Codec
- final def ~[B](codecB: Codec[B]): Codec[((A, B, C, D, E, F, G, H), B)]
Creates a
Codec[(A, B)]
that first encodes/decodes anA
followed by aB
.Creates a
Codec[(A, B)]
that first encodes/decodes anA
followed by aB
.Operator alias for pairedWith.
- Definition Classes
- Codec
- final def ~>[B](codecB: Codec[B])(implicit ev: =:=[Unit, (A, B, C, D, E, F, G, H)]): Codec[B]
Assuming
A
isUnit
, creates aCodec[B]
that: encodes the unit followed by aB
; decodes a unit followed by aB
and discards the decoded unit. - def ~~[I](I: Codec[I]): Tuple9Codec[A, B, C, D, E, F, G, H, I]