unsafe

inline fun <I : Any, O : Any> unsafe(name: String, crossinline encoder: (I) -> O, crossinline decoder: (O) -> I): Codec<I, O>(source)

Builds a codec wrapping potentially unsafe conversion logic.

Return

a codec that surfaces decoding exceptions as error messages.

Parameters

I

domain type to decode and encode.

O

serialized representation produced during encoding.

name

human readable identifier used in error messages.

encoder

transformation applied when encoding I to O.

decoder

transformation that converts O back to I; thrown exceptions are captured as failures.