FileFormat

abstract class FileFormat<T : StringFormat>(serializersModuleBuilders: MutableSet<SerializersModuleBuilder.() -> Unit>)

Abstract base class for defining serialization formats that produce StringFormat instances.

This class provides a framework for creating serialization formats tailored for human-readable or machine-readable output. It supports custom serialization modules through serializersModuleBuilders, which are used to configure serializers for specific types, such as UUID via UUIDSerializer.

Subclasses must implement forHumans and forMachines to provide format-specific configurations. The defaultForHumans and defaultForMachines properties offer default instances without additional serializers, while serializersModule builds a SerializersModule from the provided builders.

Parameters

T

The specific StringFormat type produced by this format (e.g., kotlinx.serialization.json.Json).

serializersModuleBuilders

A mutable set of builders to configure custom serializers.

See also

for a concrete implementation using JSON

for the default UUID serializer

Inheritors

Constructors

Link copied to clipboard
constructor(serializersModuleBuilders: MutableSet<SerializersModuleBuilder.() -> Unit>)

Properties

Link copied to clipboard

Provides a default StringFormat instance configured for human-readable output. Lazily initialized by calling forHumans with no additional serializers.

Link copied to clipboard

Provides a default StringFormat instance configured for machine-readable output. Lazily initialized by calling forMachines with no additional serializers.

Functions

Link copied to clipboard
abstract fun forHumans(serializersModuleBuilder: SerializersModuleBuilder.() -> Unit?): T

Creates a StringFormat instance configured for human-readable output.

Link copied to clipboard
abstract fun forMachines(serializersModuleBuilder: SerializersModuleBuilder.() -> Unit?): T

Creates a StringFormat instance configured for machine-readable output.