scodec

TupleCodecSyntax

trait TupleCodecSyntax extends TupleCodecSyntax0

Provides support for combining codecs via the ~ operator.

For example:

val codec: Codec[Int ~ Int ~ Int] = uint8 ~ uint8 ~ uint8

Codecs generated with ~ result in left nested tuples. These left nested tuples can be pulled back apart by pattern matching with ~. For example:

Codec.decode(uint8 ~ uint8 ~ uint8, bytes) map { case a ~ b ~ c => a + b + c }

Alternatively, a function of N arguments can be lifted to a function of left-nested tuples. For example:

val add3 = (_: Int) + (_: Int) + (_: Int)
Codec.decode(uint8 ~ uint8 ~ uint8, bytes) map add3

Similarly, a left nested tuple can be created with the ~ operator. This is useful when creating the tuple structure to pass to encode. For example:

(uint8 ~ uint8 ~ uint8).encode(1 ~ 2 ~ 3)

Note: this design is heavily based on Scala's parser combinator library and the syntax it provides.

Linear Supertypes
TupleCodecSyntax0, AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. TupleCodecSyntax
  2. TupleCodecSyntax0
  3. AnyRef
  4. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Type Members

  1. implicit class CodecEnrichedWithTuplingSupport[A] extends AnyRef

    Allows two codecs to be combined in to a single codec that produces a tuple.

  2. implicit class ValueEnrichedWithTuplingSupport[A] extends AnyRef

    Allows creation of left nested tuples by successive usage of ~ operator.

  3. type ~[+A, +B] = (A, B)

    Type alias for Tuple2 in order to allow left nested tuples to be written as A ~ B ~ C ~ .

    Type alias for Tuple2 in order to allow left nested tuples to be written as A ~ B ~ C ~ ....

Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  7. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  8. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  9. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  10. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  11. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  12. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  13. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  14. implicit def liftF2ToNestedTupleF[A, B, X](fn: (A, B) ⇒ X): ((A, B)) ⇒ X

  15. implicit def liftF3ToNestedTupleF[A, B, C, X](fn: (A, B, C) ⇒ X): (((A, B), C)) ⇒ X

  16. implicit def liftF4ToNestedTupleF[A, B, C, D, X](fn: (A, B, C, D) ⇒ X): ((((A, B), C), D)) ⇒ X

  17. implicit def liftF5ToNestedTupleF[A, B, C, D, E, X](fn: (A, B, C, D, E) ⇒ X): (((((A, B), C), D), E)) ⇒ X

  18. implicit def liftF6ToNestedTupleF[A, B, C, D, E, F, X](fn: (A, B, C, D, E, F) ⇒ X): ((((((A, B), C), D), E), F)) ⇒ X

  19. implicit def liftF7ToNestedTupleF[A, B, C, D, E, F, G, X](fn: (A, B, C, D, E, F, G) ⇒ X): (((((((A, B), C), D), E), F), G)) ⇒ X

  20. implicit def liftF8ToNestedTupleF[A, B, C, D, E, F, G, H, X](fn: (A, B, C, D, E, F, G, H) ⇒ X): ((((((((A, B), C), D), E), F), G), H)) ⇒ X

  21. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  22. final def notify(): Unit

    Definition Classes
    AnyRef
  23. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  24. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  25. def toString(): String

    Definition Classes
    AnyRef → Any
  26. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  27. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  28. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  29. object ~

    Extractor that allows pattern matching on the tuples created by tupling codecs.

Inherited from TupleCodecSyntax0

Inherited from AnyRef

Inherited from Any

Ungrouped