Codec

Companion:
class
class Object
trait Matchable
class Any
Codec.type

Type members

Types

type JsonCodec[T] = Codec[String, T, Json]
type PlainCodec[T] = Codec[String, T, TextPlain]
type XmlCodec[T] = Codec[String, T, Xml]

Value members

Concrete methods

def anyString[T : Schema, CF <: CodecFormat](cf: CF)(_rawDecode: String => DecodeResult[T])(_encode: T => String): Codec[String, T, CF]
def formMap(charset: Charset): Codec[String, Map[String, String], XWwwFormUrlencoded]
def formSeq(charset: Charset): Codec[String, Seq[(String, String)], XWwwFormUrlencoded]
def fromDecodeAndMeta[L, H : Schema, CF <: CodecFormat](cf: CF)(f: L => DecodeResult[H])(g: H => L): Codec[L, H, CF]
def id[L, CF <: CodecFormat](f: CF, s: Schema[L]): Codec[L, L, CF]
def idPlain[L](s: Schema[L]): Codec[L, L, TextPlain]
def json[T : Schema](_rawDecode: String => DecodeResult[T])(_encode: T => String): JsonCodec[T]
def multipart(partCodecs: Map[String, PartCodec[_, _]], defaultPartCodec: Option[PartCodec[_, _]]): MultipartCodec[ListMap[String, _]]
Value parameters:
defaultPartCodec

Default codec to use for parts which are not defined in partCodecs. None, if extra parts should be discarded.

partCodecs

For each supported part, a (raw body type, codec) pair which encodes the part value into a raw value of the given type. A single part value might be encoded as multiple (or none) raw values.

def parsedString[T : Schema](parse: String => T): Codec[String, T, TextPlain]
def rawPart(partCodecs: Map[String, PartCodec[_, _]], defaultCodec: Option[PartCodec[_, _]]): Codec[Seq[RawPart], ListMap[String, _], MultipartFormData]
def xml[T : Schema](_rawDecode: String => DecodeResult[T])(_encode: T => String): XmlCodec[T]

Inherited methods

inline def derivedEnumeration[L, T](decode: L => Option[T], encode: T => L, default: Option[T])(implicit baseCodec: PlainCodec[L]): PlainCodec[T]

Creates a codec for an enumeration, where the validator is derived using sttp.tapir.Validator.derivedEnumeration. This requires that all subtypes of the sealed hierarchy T must be objects.

Creates a codec for an enumeration, where the validator is derived using sttp.tapir.Validator.derivedEnumeration. This requires that all subtypes of the sealed hierarchy T must be objects.

Type parameters:
L

The type of the low-level representation of the enum, typically a String or an Int.

T

The type of the enum.

Value parameters:
decode

How low-level values are decoded to the enum value. None if the low-level value is invalid, that is, when there's no high-level enum value.

encode

How the enum value is encoded as a low-level value.

Inherited from:
CodecMacros
def eitherLeft[L, A, B, CF <: CodecFormat](c1: Codec[L, A, CF], c2: Codec[L, B, CF]): Codec[L, Either[A, B], CF]

Create a codec which during decoding, first tries to decode values on the left using c1. If this fails for any reason, decoding is done using c2. Both codecs must have the same low-level values and formats.

Create a codec which during decoding, first tries to decode values on the left using c1. If this fails for any reason, decoding is done using c2. Both codecs must have the same low-level values and formats.

For a right-biased variant see Codec.eitherRight.

The schema is defined to be an either schema as created by Schema.schemaForEither.

Inherited from:
LowPriorityCodec

Givens

Inherited givens

given formCaseClassCodec[T](using inline c: Configuration): Codec[String, T, XWwwFormUrlencoded]
Inherited from:
FormCodecMacros

Implicits

Implicits

implicit val bigDecimal: Codec[String, BigDecimal, TextPlain]
implicit val bigInt: Codec[String, BigInt, TextPlain]
implicit def binaryOrCloseWebSocketFrame[A, CF <: CodecFormat](implicit byteArrayCodec: Codec[Array[Byte], A, CF]): Codec[WebSocketFrame, Option[A], CF]

A codec which expects only binary and close frames (all other frames cause a decoding error). Close frames correspond to None, while text frames are handled using the given byteArrayCodec and wrapped with Some.

A codec which expects only binary and close frames (all other frames cause a decoding error). Close frames correspond to None, while text frames are handled using the given byteArrayCodec and wrapped with Some.

implicit def binaryWebSocketFrame[A, CF <: CodecFormat](implicit byteArrayCodec: Codec[Array[Byte], A, CF]): Codec[WebSocketFrame, A, CF]

A codec which expects only binary frames (all other frames cause a decoding error) and handles the text using the given byteArrayCodec.

A codec which expects only binary frames (all other frames cause a decoding error) and handles the text using the given byteArrayCodec.

implicit val boolean: Codec[String, Boolean, TextPlain]
implicit val byte: Codec[String, Byte, TextPlain]
implicit val byteArray: Codec[Array[Byte], Array[Byte], OctetStream]
implicit val byteBuffer: Codec[ByteBuffer, ByteBuffer, OctetStream]
implicit val cacheDirective: Codec[String, List[CacheDirective], TextPlain]
implicit val cookieWithMeta: Codec[String, CookieWithMeta, TextPlain]
implicit val cookies: Codec[List[String], List[Cookie], TextPlain]
implicit val cookiesWithMeta: Codec[List[String], List[CookieWithMeta], TextPlain]
implicit val date: Codec[String, Date, TextPlain]
implicit val double: Codec[String, Double, TextPlain]
implicit val duration: Codec[String, Duration, TextPlain]
implicit val etag: Codec[String, ETag, TextPlain]
implicit val float: Codec[String, Float, TextPlain]
implicit val formMapUtf8: Codec[String, Map[String, String], XWwwFormUrlencoded]
implicit val formSeqUtf8: Codec[String, Seq[(String, String)], XWwwFormUrlencoded]
implicit val inputStream: Codec[InputStream, InputStream, OctetStream]
implicit val instant: Codec[String, Instant, TextPlain]
implicit val int: Codec[String, Int, TextPlain]
implicit val javaBigDecimal: Codec[String, BigDecimal, TextPlain]
implicit val javaBigInteger: Codec[String, BigInteger, TextPlain]
implicit def list[T, U, CF <: CodecFormat](implicit c: Codec[T, U, CF]): Codec[List[T], List[U], CF]

Create a codec which decodes/encodes a list of low-level values to a list of high-level values, using the given base codec c.

Create a codec which decodes/encodes a list of low-level values to a list of high-level values, using the given base codec c.

The schema is copied from the base codec.

implicit def listHead[T, U, CF <: CodecFormat](implicit c: Codec[T, U, CF]): Codec[List[T], U, CF]

Create a codec which requires that a list of low-level values contains a single element. Otherwise a decode failure is returned. The given base codec c is used for decoding/encoding.

Create a codec which requires that a list of low-level values contains a single element. Otherwise a decode failure is returned. The given base codec c is used for decoding/encoding.

The schema and validator are copied from the base codec.

implicit def listHeadOption[T, U, CF <: CodecFormat](implicit c: Codec[T, U, CF]): Codec[List[T], Option[U], CF]

Create a codec which requires that a list of low-level values is empty or contains a single element. If it contains multiple elements, a decode failure is returned. The given base codec c is used for decoding/encoding.

Create a codec which requires that a list of low-level values is empty or contains a single element. If it contains multiple elements, a decode failure is returned. The given base codec c is used for decoding/encoding.

The schema and validator are copied from the base codec.

implicit val localDate: Codec[String, LocalDate, TextPlain]
implicit val localDateTime: Codec[String, LocalDateTime, TextPlain]
implicit val localTime: Codec[String, LocalTime, TextPlain]
implicit val long: Codec[String, Long, TextPlain]
implicit val mediaType: Codec[String, MediaType, TextPlain]
implicit val offsetDateTime: Codec[String, OffsetDateTime, TextPlain]
implicit val offsetTime: Codec[String, OffsetTime, TextPlain]
implicit def option[T, U, CF <: CodecFormat](implicit c: Codec[T, U, CF]): Codec[Option[T], Option[U], CF]

Create a codec which decodes/encodes an optional low-level value to an optional high-level value. The given base codec c is used for decoding/encoding.

Create a codec which decodes/encodes an optional low-level value to an optional high-level value. The given base codec c is used for decoding/encoding.

The schema and validator are copied from the base codec.

implicit def optionHead[T, U, CF <: CodecFormat](implicit c: Codec[T, U, CF]): Codec[Option[T], U, CF]

Create a codec which requires that an optional low-level value is defined. If it is None, a decode failure is returned. The given base codec c is used for decoding/encoding.

Create a codec which requires that an optional low-level value is defined. If it is None, a decode failure is returned. The given base codec c is used for decoding/encoding.

The schema and validator are copied from the base codec.

implicit def part[T, U, CF <: CodecFormat](implicit c: Codec[T, U, CF]): Codec[Part[T], Part[U], CF]
implicit val range: Codec[String, Range, TextPlain]
implicit val scalaDuration: Codec[String, Duration, TextPlain]
implicit def set[T, U, CF <: CodecFormat](implicit c: Codec[T, U, CF]): Codec[List[T], Set[U], CF]

Create a codec which decodes/encodes a list of low-level values to a set of high-level values, using the given base codec c.

Create a codec which decodes/encodes a list of low-level values to a set of high-level values, using the given base codec c.

The schema is copied from the base codec.

implicit val short: Codec[String, Short, TextPlain]
implicit val string: Codec[String, String, TextPlain]
implicit def textOrCloseWebSocketFrame[A, CF <: CodecFormat](implicit stringCodec: Codec[String, A, CF]): Codec[WebSocketFrame, Option[A], CF]

A codec which expects only text and close frames (all other frames cause a decoding error). Close frames correspond to None, while text frames are handled using the given stringCodec and wrapped with Some.

A codec which expects only text and close frames (all other frames cause a decoding error). Close frames correspond to None, while text frames are handled using the given stringCodec and wrapped with Some.

implicit def textWebSocketFrame[A, CF <: CodecFormat](implicit stringCodec: Codec[String, A, CF]): Codec[WebSocketFrame, A, CF]

A codec which expects only text frames (all other frames cause a decoding error) and handles the text using the given stringCodec.

A codec which expects only text frames (all other frames cause a decoding error) and handles the text using the given stringCodec.

implicit def tupledWithRaw[L, H, CF <: CodecFormat](implicit codec: Codec[L, H, CF]): Codec[L, (L, H), CF]
implicit def unwrapPart[T, U, CF <: CodecFormat](implicit c: Codec[T, U, CF]): Codec[Part[T], U, CF]
implicit val uri: PlainCodec[Uri]
implicit val uuid: Codec[String, UUID, TextPlain]
implicit def vector[T, U, CF <: CodecFormat](implicit c: Codec[T, U, CF]): Codec[List[T], Vector[U], CF]

Create a codec which decodes/encodes a list of low-level values to a vector of high-level values, using the given base codec c.

Create a codec which decodes/encodes a list of low-level values to a vector of high-level values, using the given base codec c.

The schema and validator are copied from the base codec.

implicit val webSocketFrame: Codec[WebSocketFrame, WebSocketFrame, TextPlain]
implicit val zoneOffset: Codec[String, ZoneOffset, TextPlain]
implicit val zonedDateTime: Codec[String, ZonedDateTime, TextPlain]

Inherited implicits

implicit inline def derivedValueClass[T <: AnyVal]: Codec[String, T, TextPlain]

Creates a codec for value class based on codecs defined in Codec companion

Creates a codec for value class based on codecs defined in Codec companion

Inherited from:
CodecMacros
implicit def eitherRight[L, A, B, CF <: CodecFormat](implicit c1: Codec[L, A, CF], c2: Codec[L, B, CF]): Codec[L, Either[A, B], CF]

Create a codec which during decoding, first tries to decode values on the right using c2. If this fails for any reason, decoding is done using c1. Both codecs must have the same low-level values and formats.

Create a codec which during decoding, first tries to decode values on the right using c2. If this fails for any reason, decoding is done using c1. Both codecs must have the same low-level values and formats.

For a left-biased variant see Codec.eitherLeft. This right-biased version is the default when using implicit codec resolution.

The schema is defined to be an either schema as created by Schema.schemaForEither.

Inherited from:
LowPriorityCodec
implicit lazy val path: Codec[FileRange, Path, OctetStream]
Inherited from:
CodecExtensions