SerializationManagerBuilder¶
Constructors¶
SerializationManagerBuilder¶
constructor()
Types¶
DynamicOpRegistryBuilder¶
class DynamicOpRegistryBuilder<T>
SerializerRegistryBuilder¶
Functions¶
module¶
Uses the SerializersModuleBuilder to configure the shared module between all serializer instances.
Parameters
- block: A builder function for creating a SerializersModule
registerDynamicOp¶
fun <T : Any> registerDynamicOp(op: DynamicOps<T>, block: SerializationManager.SerializationManagerBuilder.DynamicOpRegistryBuilder<T>.() -> Unit)
Registers a new DynamicOps instance with its associated encode and decode functions. This is used when you convert a KSerializer into a Codec via SerializerCodec.
Usage¶
registerDynamicOp(JsonOps.INSTANCE) {
encode { input, strategy -> json.encodeToJsonElement(strategy, input).toGson }
decode { input, strategy ->
require(input is GsonElement) { "Expected input of type JsonElement but received ${input.javaClass.simpleName}." }
json.decodeFromJsonElement(strategy, input.toKson)
}
}
Parameters
-
op: The
DynamicOpsinstance. -
block: The builder function of the
DynamicOpRegistry
registerSerializer¶
fun registerSerializer(
descriptor: SerialDescriptor,
name: String? = null,
block: SerializationManager.SerializationManagerBuilder.SerializerRegistryBuilder.() -> Unit
)
Registers a new Serializer with its associated encode and decode functions. This is used when you convert a Codec into KSerializer.
Note: Because a limitation of the Codec structure you need an "intermediary" such as JsonElement or NbtTag for example.
Usage¶
registerSerializer(JsonElement.serializer().descriptor) {
encode(JsonEncoder::class) { encoder, codec, input ->
encoder.encodeJsonElement(codec.encodeStart(KOps.Json, input).orThrow)
}
decode(JsonDecoder::class) { decoder, codec ->
codec.parse(KOps.Json, decoder.decodeJsonElement()).orThrow
}
}
Parameters
-
descriptor: The descriptor of the serializer
-
name: An optional name for the element in the
CodecSerializerdescriptor -
block: The builder function of the
SerializerRegistry