sttp.tapir.EndpointTransput
See theEndpointTransput companion object
A transput is EITHER an input, or an output (see: https://ell.stackexchange.com/questions/21405/hypernym-for-input-and-output). The transput traits contain common functionality, shared by all inputs and outputs.
Note that implementations of EndpointIO
can be used both as inputs and outputs.
The hierarchy is as follows:
/---> `EndpointInput` >---\
`EndpointTransput` >--- ---> `EndpointIO`
\---> `EndpointOutput` >---/
Inputs and outputs additionally form another hierarchy:
/--> `Single` >--> `Basic` >--> `Atom`
`EndpointInput` / `EndpointOutput` >--
\--> `Pair`
where the intuition behind the traits is:
single
: represents a single value, as opposed to a pair (tuple); a pair, but transformed using.map
is also a single valuebasic
: corresponds to an input/output which is encoded/decoded in one step; alwayssingle
atom
: corresponds to a single component of a request or response. Such inputs/outputs contain a Codec and Info meta-data, and are alwaysbasic
Attributes
- Companion:
- object
- Graph
- Supertypes
- Known subtypes
- trait EndpointInput[T]trait EndpointIO[T]trait Single[I]trait Basic[I]trait Atom[I]class Empty[T]class FixedHeader[T]class Header[T]class Headers[T]trait Single[T]trait Basic[T]trait Atom[T]class Cookie[T]class ExtractFromRequest[T]class FixedMethod[T]class FixedPath[T]class PathCapture[T]class PathsCapture[T]class Query[T]class QueryParams[T]trait EndpointOutput[T]trait Single[T]trait Basic[T]trait Atom[T]class FixedStatusCode[T]class StatusCode[T]class Void[T]trait Basic[T]trait Atom[T]trait Pair[T]