CodecAPI

trait CodecAPI

An abstraction exposing serialisation functions to decode from bytes / encode to bytes, based on a path-dependant Codec types.

Only used in unary request/response patterns.

Companion:
object
class Object
trait Matchable
class Any

Type members

Types

type Codec[A]

Value members

Abstract methods

def compileCodec[A](schema: Schema[A]): Codec[A]

Turns a Schema into this API's preferred representation.

Turns a Schema into this API's preferred representation.

Value parameters:
schema

the value's schema

Returns:

the codec associated to the A value.

Decodes partial data from a byte array

Decodes partial data from a byte array

Value parameters:
bytes

an byte array

codec

the implementation-specific codec type

Returns:

either a PayloadError, or the partial data, which can be combined with partial data coming from the metadata.

def decodeFromByteBufferPartial[A](codec: Codec[A], bytes: ByteBuffer): Either[PayloadError, BodyPartial[A]]

Decodes partial data from a byte buffer, returning a function that is able to reconstruct the full data, provided a map resulting from the decoding of the metadata.

Decodes partial data from a byte buffer, returning a function that is able to reconstruct the full data, provided a map resulting from the decoding of the metadata.

Value parameters:
bytes

a bytue buffer

codec

the implementation-specific codec

Returns:

either a PayloadError, or the partial data, which can be combined with partial data coming from the metadata.

def mediaType[A](codec: Codec[A]): HttpMediaType
def writeToArray[A](codec: Codec[A], value: A): Array[Byte]

Writes data to a byte array. Field values bound to http metadata (path/query/headers) must be eluded.

Writes data to a byte array. Field values bound to http metadata (path/query/headers) must be eluded.

Value parameters:
codec

the implementation-specific codec

value

the value to encode

Concrete methods

def decodeFromByteArray[A](codec: Codec[A], bytes: Array[Byte]): Either[PayloadError, A]
def decodeFromByteBuffer[A](codec: Codec[A], bytes: ByteBuffer): Either[PayloadError, A]