SerializerTransformer

class SerializerTransformer<I>(val serializer: KSerializer<I>) : Transformer<I>

Constructors

Link copied to clipboard
constructor(serializer: KSerializer<I>)

Properties

Link copied to clipboard
open override val hasContent: Boolean
Link copied to clipboard
val serializer: KSerializer<I>

Functions

Link copied to clipboard
open suspend override fun <T> transform(input: I, channel: SerializedService<T>): CallData<T>
Link copied to clipboard
open suspend fun <S> transformOutcome(output: I, channel: SerializedService<S>, encodeError: (Throwable) -> CallData.Error<S>): CallData<S>

Server-side boundary hook (issue #133). Invoked by RpcMethod.call with the value returned by the handler. The default implementation simply delegates to transform; transformers that need to observe the failure channel (e.g. ResultTransformer for Result<O> return types) override this to fold a returned failure into the wire-level error frame via encodeError.

Link copied to clipboard
open suspend override fun <T> untransform(data: CallData<T>, channel: SerializedService<T>): I
Link copied to clipboard
open suspend fun <S> untransformOutcome(data: CallData<S>, channel: SerializedService<S>, decodeError: (CallData.Error<S>) -> Throwable): I

Client-side boundary hook (issue #133). Invoked by RpcMethod.callChannel with the raw wire response (which may be a CallData.Error). The default implementation throws the decoded error — preserving today's behaviour — and otherwise delegates to untransform. ResultTransformer overrides this to wrap the outcome in a kotlin.Result instead of throwing.