p

pbdirect

package pbdirect

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. pbdirect
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. final case class FieldIndex(values: List[Int]) extends Product with Serializable

    A protobuf index, also known as the field number.

    A protobuf index, also known as the field number. It holds a list of indices in order to support 'oneof' fields, which are encoded as shapeless Coproducts and have a different index for each branch.

  2. final case class FieldModifiers(unpacked: Boolean) extends Product with Serializable

    Modifiers for how a field should be encoded, derived from annotations such as @pbUnpacked.

  3. sealed trait Fixed extends AnyRef

    A modifier to signify that an integer field is encoded as a fixed-width Protobuf type (fixed32, fixed64, sfixed32 or sfixed64).

    A modifier to signify that an integer field is encoded as a fixed-width Protobuf type (fixed32, fixed64, sfixed32 or sfixed64).

    This modifier is used by attaching it to a field's type as a shapeless tag. e.g.

    import shapeless.tag.@@
    import pbdirect.Fixed
    
    case class MyMessage(
      signedInt: Int @@ Fixed,   // will be encoded as a fixed32
      signedLong: Long @@ Fixed, // will be encoded as a fixed64
    )

    It can also be combined with the Signed tag, e.g.

    case class MyMessage(
      fixedSignedInt: Int @@ (Signed with Fixed),  // will be encoded as an sfixed32
      fixedSignedLong: Long @@ (Signed with Fixed) // will be encoded as an sfixed64
    )
  4. trait LowPriorityPBScalarValueWriterImplicits extends AnyRef
  5. trait PBFieldReader[A] extends AnyRef
  6. trait PBFieldReaderImplicits extends AnyRef
  7. trait PBFieldWriter[A] extends AnyRef
  8. trait PBFieldWriterImplicits extends AnyRef
  9. sealed trait PBFormat[A] extends PBScalarValueReader[A] with PBScalarValueWriter[A]
  10. trait PBFormatImplicits extends AnyRef
  11. trait PBMessageReader[A] extends AnyRef
  12. trait PBMessageReaderImplicits extends AnyRef
  13. implicit final class PBMessageReaderOps extends AnyVal
  14. trait PBMessageWriter[A] extends AnyRef
  15. trait PBMessageWriterImplicits extends AnyRef
  16. implicit final class PBMessageWriterOps[A] extends AnyVal
  17. trait PBOneofFieldReader[A <: Coproduct] extends AnyRef
  18. trait PBOneofFieldReaderImplicits extends AnyRef
  19. trait PBOneofFieldWriter[A <: Coproduct] extends AnyRef
  20. trait PBOneofFieldWriterImplicits extends AnyRef
  21. trait PBProductReader[R <: HList, I <: HList] extends AnyRef
  22. trait PBProductReaderImplicits extends AnyRef
  23. trait PBProductWriter[A <: HList] extends AnyRef
  24. trait PBProductWriterImplicits extends AnyRef
  25. trait PBScalarValueReader[A] extends AnyRef
  26. trait PBScalarValueReaderImplicits extends PBScalarValueReaderImplicits_1
  27. trait PBScalarValueReaderImplicits_1 extends AnyRef
  28. trait PBScalarValueWriter[A] extends AnyRef
  29. trait PBScalarValueWriterImplicits extends LowPriorityPBScalarValueWriterImplicits
  30. sealed trait Signed extends AnyRef

    A modifier to signify that an integer field is encoded as a signed Protobuf type (sint32, sint64, sfixed32 or sfixed64).

    A modifier to signify that an integer field is encoded as a signed Protobuf type (sint32, sint64, sfixed32 or sfixed64).

    This modifier is used by attaching it to a field's type as a shapeless tag. e.g.

    import shapeless.tag.@@
    import pbdirect.Signed
    
    case class MyMessage(
      signedInt: Int @@ Signed,  // will be encoded as an sint32
      signedLong: Long @@ Signed // will be encoded as an sint64
    )

    It can also be combined with the Fixed tag, e.g.

    case class MyMessage(
      fixedSignedInt: Int @@ (Signed with Fixed),  // will be encoded as an sfixed32
      fixedSignedLong: Long @@ (Signed with Fixed) // will be encoded as an sfixed64
    )
  31. sealed trait Unsigned extends AnyRef

    A modifier to signify that an integer field is encoded as an unsigned Protobuf type (uint32 or uint64).

    A modifier to signify that an integer field is encoded as an unsigned Protobuf type (uint32 or uint64).

    This modifier is used by attaching it to a field's type as a shapeless tag. e.g.

    import shapeless.tag.@@
    import pbdirect.Unsigned
    
    case class MyMessage(
      signedInt: Int @@ Unsigned,   // will be encoded as a uint32
      signedLong: Long @@ Unsigned, // will be encoded as a uint64
    )
  32. case class pbIndex(first: Int, more: Int*) extends Annotation with Product with Serializable

    An annotation that must be applied to all fields in messages to tell pbdirect their index (a.k.a.

    An annotation that must be applied to all fields in messages to tell pbdirect their index (a.k.a. field number)

    e.g.

    case class MyMessage(
      @pbIndex(1) a: Int,
      @pbIndex(2) b: String,
      @pbIndex(3, 4) c: String :+: Boolean :+: CNil // oneof field
    )
  33. case class pbUnpacked() extends Annotation with Product with Serializable

    An annotation to specify that a primitive repeated field should **not** be encoded using the protobuf packed encoding.

    An annotation to specify that a primitive repeated field should **not** be encoded using the protobuf packed encoding.

    e.g.

    case class MyMessage(
      @pbUnpacked() numbers: List[Int]
    )

    Unless annotated with @pbUnpacked, all primitive repeated fields (ints, floats, booleans and enums) will be packed by default. This is the standard proto3 behaviour.

  34. trait Pos extends AnyRef
    Annotations
    @deprecated
    Deprecated

    (Since version 0.5.2) Please use an enumeratum IntEnum instead

Deprecated Value Members

  1. object Enum
    Annotations
    @deprecated
    Deprecated

    (Since version 0.5.2) Please use an enumeratum IntEnum instead

Inherited from AnyRef

Inherited from Any

Ungrouped