Skip to content

SerializerCodec

open class SerializerCodec<T : Any>(serializer: KSerializer<T>) : Codec<T> 

Used for KSerializer.codec, you could extend this class to make any modifications you like.

Note: It is HIGHLY recommended to just use the extension function KSerializer.codec instead of manually using this class.

Constructors

SerializerCodec

constructor(serializer: KSerializer<T>)

Properties

kSerializer

val <T : Any> Codec<T>.kSerializer: KSerializer<T>

Converts a Codec into a KSerializer.

Note: By default JsonOps and NbtOps are supported. Check SerializationManager.SerializationManagerBuilder.registerDynamicOp to register another DynamicOps. Trying to use unregistered DynamicOps implementations will result in an UnsupportedOperationException.

Functions

boxed

open fun boxed(): Decoder.Boxed<T?>?

comap

open fun <B : Any?> comap(function: Function<in B?, out T?>?): Encoder<B?>?

comapFlatMap

open fun <S : Any?> comapFlatMap(to: Function<in T?, out DataResult<out S?>?>?, from: Function<in S?, out T?>?): Codec<S?>?

decode

open fun <T : Any?> decode(input: Dynamic<T?>?): DataResult<Pair<T?, T?>?>?
open override fun <V : Any> decode(ops: DynamicOps<V>, input: V): DataResult<Pair<T, V>>

deprecated

open fun deprecated(since: Int): Codec<T?>?

dispatch

open fun <E : Any?> dispatch(type: Function<in E?, out T?>?, codec: Function<in T?, out MapCodec<out E?>?>?): Codec<E?>?
open fun <E : Any?> dispatch(
    typeKey: String?, 
    type: Function<in E?, out T?>?, 
    codec: Function<in T?, out MapCodec<out E?>?>?
): Codec<E?>?

dispatchMap

open fun <E : Any?> dispatchMap(type: Function<in E?, out T?>?, codec: Function<in T?, out MapCodec<out E?>?>?): MapCodec<E?>?
open fun <E : Any?> dispatchMap(
    typeKey: String?, 
    type: Function<in E?, out T?>?, 
    codec: Function<in T?, out MapCodec<out E?>?>?
): MapCodec<E?>?

dispatchStable

open fun <E : Any?> dispatchStable(type: Function<in E?, out T?>?, codec: Function<in T?, out MapCodec<out E?>?>?): Codec<E?>?

encode

open override fun <V : Any> encode(
    input: T, 
    ops: DynamicOps<V>, 
    prefix: V
): DataResult<V>

encodeStart

open fun <T : Any?> encodeStart(ops: DynamicOps<T?>?, input: T?): DataResult<T?>?

fieldOf

open fun fieldOf(name: String?): MapCodec<T?>?

flatComap

open fun <B : Any?> flatComap(function: Function<in B?, out DataResult<out T?>?>?): Encoder<B?>?

flatComapMap

open fun <S : Any?> flatComapMap(to: Function<in T?, out S?>?, from: Function<in S?, out DataResult<out T?>?>?): Codec<S?>?

flatMap

open fun <B : Any?> flatMap(function: Function<in T?, out DataResult<out B?>?>?): Decoder<B?>?

flatXmap

open fun <S : Any?> flatXmap(to: Function<in T?, out DataResult<out S?>?>?, from: Function<in S?, out DataResult<out T?>?>?): Codec<S?>?

lenientOptionalFieldOf

open fun lenientOptionalFieldOf(name: String?): MapCodec<Optional<T?>?>?
open fun lenientOptionalFieldOf(name: String?, defaultValue: T?): MapCodec<T?>?
open fun lenientOptionalFieldOf(
    name: String?, 
    defaultValue: T?, 
    lifecycleOfDefault: Lifecycle?
): MapCodec<T?>?
open fun lenientOptionalFieldOf(
    name: String?, 
    fieldLifecycle: Lifecycle?, 
    defaultValue: T?, 
    lifecycleOfDefault: Lifecycle?
): MapCodec<T?>?

listOf

open fun listOf(): Codec<List<T?>?>?
open fun listOf(minSize: Int, maxSize: Int): Codec<List<T?>?>?

map

open fun <B : Any?> map(function: Function<in T?, out B?>?): Decoder<B?>?

mapResult

open fun mapResult(function: Codec.ResultFunction<T?>?): Codec<T?>?

optionalFieldOf

open fun optionalFieldOf(name: String?): MapCodec<Optional<T?>?>?
open fun optionalFieldOf(name: String?, defaultValue: T?): MapCodec<T?>?
open fun optionalFieldOf(
    name: String?, 
    defaultValue: T?, 
    lifecycleOfDefault: Lifecycle?
): MapCodec<T?>?
open fun optionalFieldOf(
    name: String?, 
    fieldLifecycle: Lifecycle?, 
    defaultValue: T?, 
    lifecycleOfDefault: Lifecycle?
): MapCodec<T?>?

orElse

open fun orElse(value: T?): Codec<T?>?
open fun orElse(onError: Consumer<String?>?, value: T?): Codec<T?>?
open fun orElse(onError: UnaryOperator<String?>?, value: T?): Codec<T?>?

orElseGet

open fun orElseGet(value: Supplier<out T?>?): Codec<T?>?
open fun orElseGet(onError: Consumer<String?>?, value: Supplier<out T?>?): Codec<T?>?
open fun orElseGet(onError: UnaryOperator<String?>?, value: Supplier<out T?>?): Codec<T?>?

parse

open fun <T : Any?> parse(input: Dynamic<T?>?): DataResult<T?>?
open fun <T : Any?> parse(ops: DynamicOps<T?>?, input: T?): DataResult<T?>?

partialDispatch

open fun <E : Any?> partialDispatch(
    typeKey: String?, 
    type: Function<in E?, out DataResult<out T?>?>?, 
    codec: Function<in T?, out DataResult<out MapCodec<out E?>?>?>?
): Codec<E?>?

promotePartial

open fun promotePartial(onError: Consumer<String?>?): Codec<T?>?

simple

open fun simple(): Decoder.Simple<T?>?

sizeLimitedListOf

open fun sizeLimitedListOf(maxSize: Int): Codec<List<T?>?>?

stable

open fun stable(): Codec<T?>?

terminal

open fun terminal(): Decoder.Terminal<T?>?

validate

open fun validate(checker: Function<T?, DataResult<T?>?>?): Codec<T?>?

withLifecycle

open fun withLifecycle(lifecycle: Lifecycle?): Codec<T?>?

xmap

open fun <S : Any?> xmap(to: Function<in T?, out S?>?, from: Function<in S?, out T?>?): Codec<S?>?