Package-level declarations

Types

Link copied to clipboard
interface ConfigBackend

Backend for ConfigStorage that handles loading config data, change detection, and error reporting.

Link copied to clipboard
class ConfigExtractor(extractedConfigs: MutableMap<Key, String>)

Utility for copying config templates to a destination file, adding and removing entries and comments as necessary while keeping changes made by users intact.

Link copied to clipboard
@SubclassOptInRequired(markerClass = [UnstableProviderApi::class])
interface ConfigProvider : Provider<JsonElement>
Link copied to clipboard
class ConfigStorage(rootSerializers: SerializersModule, backend: ConfigBackend)

Stores and manages configs identified by Keys.

Functions

Link copied to clipboard
inline fun <T> SerializersModule.contextualSerializer(): KSerializer<T>

Retrieves a contextual serializer for the given T and, if T is not registered for contextual serialization, falls back to the default serializer.

fun SerializersModule.contextualSerializer(type: KType): KSerializer<Any?>

Retrieves a contextual serializer for the given type and, if type is not registered for contextual serialization, falls back to the default serializer.

Link copied to clipboard
inline fun <T : Any> Provider<ConfigProvider>.entry(vararg path: String): Provider<T>
inline fun <T : Any> Provider<ConfigProvider>.entry(vararg paths: List<String>): Provider<T>
inline fun <T : Any> ConfigProvider.entry(vararg paths: Array<String>): Provider<T>
inline fun <T : Any> ConfigProvider.entry(vararg path: String): Provider<T>

inline fun <T : Any> Provider<ConfigProvider>.entry(default: T, vararg path: String): Provider<T>
inline fun <T : Any> Provider<ConfigProvider>.entry(default: Provider<T>, vararg path: String): Provider<T>
inline fun <T : Any> ConfigProvider.entry(default: T, vararg path: String): Provider<T>
inline fun <T : Any> ConfigProvider.entry(default: Provider<T>, vararg path: String): Provider<T>

Gets an entry Provider for a value of type T under path. Falls back to default if the entry does not exist or could not be deserialized due to SerializationException.

inline fun <T : Any> Provider<ConfigProvider>.entry(default: T, vararg paths: List<String>): Provider<T>
inline fun <T : Any> Provider<ConfigProvider>.entry(default: Provider<T>, vararg paths: List<String>): Provider<T>
inline fun <T : Any> ConfigProvider.entry(default: T, vararg paths: List<String>): Provider<T>
inline fun <T : Any> ConfigProvider.entry(default: Provider<T>, vararg paths: List<String>): Provider<T>

Gets an entry Provider for a value of type T under the first existing path from paths. Falls back to default if no entry exists or could not be deserialized due to SerializationException.

inline fun <S : Any, T : Any> Provider<ConfigProvider>.entry(default: S, vararg path: String, noinline transform: (S) -> T): Provider<T>
inline fun <S : Any, T : Any> Provider<ConfigProvider>.entry(default: Provider<S>, vararg path: String, noinline transform: (S) -> T): Provider<T>
inline fun <S : Any, T : Any> ConfigProvider.entry(default: S, vararg path: String, noinline transform: (S) -> T): Provider<T>
inline fun <S : Any, T : Any> ConfigProvider.entry(default: Provider<S>, vararg path: String, noinline transform: (S) -> T): Provider<T>

Gets an entry Provider for a value of type S under path, transformed to T by transform. Falls back to the transformed default if the entry does not exist or could not be deserialized or transformed due to SerializationException.

inline fun <S : Any, T : Any> Provider<ConfigProvider>.entry(default: S, vararg paths: List<String>, noinline transform: (S) -> T): Provider<T>
inline fun <S : Any, T : Any> Provider<ConfigProvider>.entry(default: Provider<S>, vararg paths: List<String>, noinline transform: (S) -> T): Provider<T>
inline fun <S : Any, T : Any> ConfigProvider.entry(default: S, vararg paths: List<String>, noinline transform: (S) -> T): Provider<T>
inline fun <S : Any, T : Any> ConfigProvider.entry(default: Provider<S>, vararg paths: List<String>, noinline transform: (S) -> T): Provider<T>

Gets an entry Provider for a value of type S under the first existing path from paths, transformed to T by transform. Falls back to the transformed default if no entry exists or could not be deserialized or transformed due to SerializationException.

fun <T : Any> Provider<ConfigProvider>.entry(serializer: KSerializer<T>, default: T, vararg path: String): Provider<T>
fun <T : Any> Provider<ConfigProvider>.entry(serializer: KSerializer<T>, default: Provider<T>, vararg path: String): Provider<T>
fun <T : Any> ConfigProvider.entry(serializer: KSerializer<T>, default: T, vararg path: String): Provider<T>
fun <T : Any> ConfigProvider.entry(serializer: KSerializer<T>, default: Provider<T>, vararg path: String): Provider<T>

Gets an entry Provider for a value deserialized by serializer under path. Falls back to default if the entry does not exist or could not be deserialized due to SerializationException.

fun <T : Any> Provider<ConfigProvider>.entry(serializer: KSerializer<T>, default: T, vararg paths: List<String>): Provider<T>
fun <T : Any> Provider<ConfigProvider>.entry(serializer: KSerializer<T>, default: Provider<T>, vararg paths: List<String>): Provider<T>
fun <T : Any> ConfigProvider.entry(serializer: KSerializer<T>, default: T, vararg paths: List<String>): Provider<T>
fun <T : Any> ConfigProvider.entry(serializer: KSerializer<T>, default: Provider<T>, vararg paths: List<String>): Provider<T>

Gets an entry Provider for a value deserialized by serializer under the first existing path from paths. Falls back to default if no entry exists or could not be deserialized due to SerializationException.

fun <T : Any> ConfigProvider.entry(type: KType, default: Provider<T>, vararg paths: List<String>): Provider<T>

Gets an entry Provider for a value of type under the first existing path from paths. Falls back to default if no entry exists or could not be deserialized due to SerializationException.

fun <S : Any, T : Any> Provider<ConfigProvider>.entry(serializer: KSerializer<S>, default: S, vararg path: String, transform: (S) -> T): Provider<T>
fun <S : Any, T : Any> Provider<ConfigProvider>.entry(serializer: KSerializer<S>, default: Provider<S>, vararg path: String, transform: (S) -> T): Provider<T>
fun <S : Any, T : Any> ConfigProvider.entry(serializer: KSerializer<S>, default: S, vararg path: String, transform: (S) -> T): Provider<T>
fun <S : Any, T : Any> ConfigProvider.entry(serializer: KSerializer<S>, default: Provider<S>, vararg path: String, transform: (S) -> T): Provider<T>

Gets an entry Provider for a value deserialized by serializer under path, transformed to T by transform. Falls back to the transformed default if the entry does not exist or could not be deserialized or transformed due to SerializationException.

fun <S : Any, T : Any> Provider<ConfigProvider>.entry(serializer: KSerializer<S>, default: S, vararg paths: List<String>, transform: (S) -> T): Provider<T>
fun <S : Any, T : Any> Provider<ConfigProvider>.entry(serializer: KSerializer<S>, default: Provider<S>, vararg paths: List<String>, transform: (S) -> T): Provider<T>
fun <S : Any, T : Any> ConfigProvider.entry(serializer: KSerializer<S>, default: S, vararg paths: List<String>, transform: (S) -> T): Provider<T>
fun <S : Any, T : Any> ConfigProvider.entry(serializer: KSerializer<S>, default: Provider<S>, vararg paths: List<String>, transform: (S) -> T): Provider<T>

Gets an entry Provider for a value deserialized by serializer under the first existing path from paths, transformed to T by transform. Falls back to the transformed default if no entry exists or could not be deserialized or transformed due to SerializationException.

Link copied to clipboard
inline fun <T : Any> Provider<ConfigProvider>.entryOrElse(default: T?, vararg path: String): Provider<T>
inline fun <T : Any> Provider<ConfigProvider>.entryOrElse(default: T?, vararg paths: List<String>): Provider<T>
inline fun <T : Any> Provider<ConfigProvider>.entryOrElse(default: Provider<T>?, vararg path: String): Provider<T>
inline fun <T : Any> Provider<ConfigProvider>.entryOrElse(default: Provider<T>?, vararg paths: List<String>): Provider<T>
inline fun <T : Any> ConfigProvider.entryOrElse(default: T?, vararg paths: Array<String>): Provider<T>
inline fun <T : Any> ConfigProvider.entryOrElse(default: T?, vararg path: String): Provider<T>
inline fun <T : Any> ConfigProvider.entryOrElse(default: Provider<T>?, vararg paths: Array<String>): Provider<T>
inline fun <T : Any> ConfigProvider.entryOrElse(default: Provider<T>?, vararg path: String): Provider<T>
fun <T : Any> ConfigProvider.entryOrElse(type: KType, default: Provider<T>?, vararg paths: Array<String>): Provider<T>
fun <T : Any> ConfigProvider.entryOrElse(type: KType, default: Provider<T>?, vararg path: String): Provider<T>
Link copied to clipboard
fun Provider<ConfigProvider>.node(vararg path: String): Provider<ConfigProvider>

Gets a ConfigProvider scoped to the sub-node at path.

Link copied to clipboard
inline fun <T : Any> Provider<ConfigProvider>.optionalEntry(vararg path: String): Provider<T?>
inline fun <T : Any> ConfigProvider.optionalEntry(vararg path: String): Provider<T?>

Gets an optional entry Provider for a value of type T under path, whose value will be null if the entry does not exist or could not be deserialized due to SerializationException.

inline fun <T : Any> Provider<ConfigProvider>.optionalEntry(vararg paths: List<String>): Provider<T?>
inline fun <T : Any> ConfigProvider.optionalEntry(vararg paths: List<String>): Provider<T?>

Gets an optional entry Provider for a value of type T under the first existing path from paths, whose value will be null if no entry exists or could not be deserialized due to SerializationException.

fun <T : Any> Provider<ConfigProvider>.optionalEntry(serializer: KSerializer<T>, vararg path: String): Provider<T?>
fun <T : Any> ConfigProvider.optionalEntry(serializer: KSerializer<T>, vararg path: String): Provider<T?>

Gets an optional entry Provider for a value deserialized by serializer under path, whose value will be null if the entry does not exist or could not be deserialized due to SerializationException.

fun <T : Any> Provider<ConfigProvider>.optionalEntry(serializer: KSerializer<T>, vararg paths: List<String>): Provider<T?>

Gets an optional entry Provider for a value deserialized by serializer under the first existing path from paths, whose value will be null if no entry exists or could not be deserialized due to SerializationException.

Link copied to clipboard
fun readYamlAsJson(reader: Reader, settings: LoadSettings = LOAD_SETTINGS): JsonElement

Reads YAML from reader with settings as a JsonElement. The given settings need to prevent recursion.

fun readYamlAsJson(yaml: String, settings: LoadSettings = LOAD_SETTINGS): JsonElement

Reads yaml with settings as a JsonElement. The given settings need to prevent recursion.

Link copied to clipboard
inline fun <T : Any> Provider<ConfigProvider>.strongEntry(vararg path: String): Provider<T>
inline fun <T : Any> Provider<ConfigProvider>.strongEntry(vararg paths: List<String>): Provider<T>
inline fun <T : Any> ConfigProvider.strongEntry(vararg paths: Array<String>): Provider<T>
inline fun <T : Any> ConfigProvider.strongEntry(vararg path: String): Provider<T>

inline fun <T : Any> Provider<ConfigProvider>.strongEntry(default: T, vararg path: String): Provider<T>
inline fun <T : Any> Provider<ConfigProvider>.strongEntry(default: Provider<T>, vararg path: String): Provider<T>
inline fun <T : Any> ConfigProvider.strongEntry(default: T, vararg path: String): Provider<T>
inline fun <T : Any> ConfigProvider.strongEntry(default: Provider<T>, vararg path: String): Provider<T>

Gets an entry Provider for a value of type T under path. Falls back to default if the entry does not exist or could not be deserialized due to SerializationException.

inline fun <T : Any> Provider<ConfigProvider>.strongEntry(default: T, vararg paths: List<String>): Provider<T>
inline fun <T : Any> Provider<ConfigProvider>.strongEntry(default: Provider<T>, vararg paths: List<String>): Provider<T>
inline fun <T : Any> ConfigProvider.strongEntry(default: T, vararg paths: List<String>): Provider<T>
inline fun <T : Any> ConfigProvider.strongEntry(default: Provider<T>, vararg paths: List<String>): Provider<T>

Gets an entry Provider for a value of type T under the first existing path from paths. Falls back to default if no entry exists or could not be deserialized due to SerializationException.

inline fun <S : Any, T : Any> Provider<ConfigProvider>.strongEntry(default: S, vararg path: String, noinline transform: (S) -> T): Provider<T>
inline fun <S : Any, T : Any> Provider<ConfigProvider>.strongEntry(default: Provider<S>, vararg path: String, noinline transform: (S) -> T): Provider<T>
inline fun <S : Any, T : Any> ConfigProvider.strongEntry(default: S, vararg path: String, noinline transform: (S) -> T): Provider<T>
inline fun <S : Any, T : Any> ConfigProvider.strongEntry(default: Provider<S>, vararg path: String, noinline transform: (S) -> T): Provider<T>

Gets an entry Provider for a value of type S under path, transformed to T by transform. Falls back to the transformed default if the entry does not exist or could not be deserialized or transformed due to SerializationException.

inline fun <S : Any, T : Any> Provider<ConfigProvider>.strongEntry(default: S, vararg paths: List<String>, noinline transform: (S) -> T): Provider<T>
inline fun <S : Any, T : Any> Provider<ConfigProvider>.strongEntry(default: Provider<S>, vararg paths: List<String>, noinline transform: (S) -> T): Provider<T>
inline fun <S : Any, T : Any> ConfigProvider.strongEntry(default: S, vararg paths: List<String>, noinline transform: (S) -> T): Provider<T>
inline fun <S : Any, T : Any> ConfigProvider.strongEntry(default: Provider<S>, vararg paths: List<String>, noinline transform: (S) -> T): Provider<T>

Gets an entry Provider for a value of type S under the first existing path from paths, transformed to T by transform. Falls back to the transformed default if no entry exists or could not be deserialized or transformed due to SerializationException.

fun <T : Any> Provider<ConfigProvider>.strongEntry(serializer: KSerializer<T>, default: T, vararg path: String): Provider<T>
fun <T : Any> Provider<ConfigProvider>.strongEntry(serializer: KSerializer<T>, default: Provider<T>, vararg path: String): Provider<T>
fun <T : Any> ConfigProvider.strongEntry(serializer: KSerializer<T>, default: T, vararg path: String): Provider<T>
fun <T : Any> ConfigProvider.strongEntry(serializer: KSerializer<T>, default: Provider<T>, vararg path: String): Provider<T>

Gets an entry Provider for a value deserialized by serializer under path. Falls back to default if the entry does not exist or could not be deserialized due to SerializationException.

fun <T : Any> Provider<ConfigProvider>.strongEntry(serializer: KSerializer<T>, default: T, vararg paths: List<String>): Provider<T>
fun <T : Any> Provider<ConfigProvider>.strongEntry(serializer: KSerializer<T>, default: Provider<T>, vararg paths: List<String>): Provider<T>
fun <T : Any> ConfigProvider.strongEntry(serializer: KSerializer<T>, default: T, vararg paths: List<String>): Provider<T>
fun <T : Any> ConfigProvider.strongEntry(serializer: KSerializer<T>, default: Provider<T>, vararg paths: List<String>): Provider<T>

Gets an entry Provider for a value deserialized by serializer under the first existing path from paths. Falls back to default if no entry exists or could not be deserialized due to SerializationException.

fun <T : Any> ConfigProvider.strongEntry(type: KType, default: Provider<T>, vararg paths: List<String>): Provider<T>

Gets an entry Provider for a value of type under the first existing path from paths. Falls back to default if no entry exists or could not be deserialized due to SerializationException.

fun <S : Any, T : Any> Provider<ConfigProvider>.strongEntry(serializer: KSerializer<S>, default: S, vararg path: String, transform: (S) -> T): Provider<T>
fun <S : Any, T : Any> Provider<ConfigProvider>.strongEntry(serializer: KSerializer<S>, default: Provider<S>, vararg path: String, transform: (S) -> T): Provider<T>
fun <S : Any, T : Any> ConfigProvider.strongEntry(serializer: KSerializer<S>, default: S, vararg path: String, transform: (S) -> T): Provider<T>
fun <S : Any, T : Any> ConfigProvider.strongEntry(serializer: KSerializer<S>, default: Provider<S>, vararg path: String, transform: (S) -> T): Provider<T>

Gets an entry Provider for a value deserialized by serializer under path, transformed to T by transform. Falls back to the transformed default if the entry does not exist or could not be deserialized or transformed due to SerializationException.

fun <S : Any, T : Any> Provider<ConfigProvider>.strongEntry(serializer: KSerializer<S>, default: S, vararg paths: List<String>, transform: (S) -> T): Provider<T>
fun <S : Any, T : Any> Provider<ConfigProvider>.strongEntry(serializer: KSerializer<S>, default: Provider<S>, vararg paths: List<String>, transform: (S) -> T): Provider<T>
fun <S : Any, T : Any> ConfigProvider.strongEntry(serializer: KSerializer<S>, default: S, vararg paths: List<String>, transform: (S) -> T): Provider<T>
fun <S : Any, T : Any> ConfigProvider.strongEntry(serializer: KSerializer<S>, default: Provider<S>, vararg paths: List<String>, transform: (S) -> T): Provider<T>

Gets an entry Provider for a value deserialized by serializer under the first existing path from paths, transformed to T by transform. Falls back to the transformed default if no entry exists or could not be deserialized or transformed due to SerializationException.

Link copied to clipboard
inline fun <T : Any> Provider<ConfigProvider>.strongEntryOrElse(default: T?, vararg path: String): Provider<T>
inline fun <T : Any> Provider<ConfigProvider>.strongEntryOrElse(default: T?, vararg paths: List<String>): Provider<T>
inline fun <T : Any> Provider<ConfigProvider>.strongEntryOrElse(default: Provider<T>?, vararg path: String): Provider<T>
inline fun <T : Any> Provider<ConfigProvider>.strongEntryOrElse(default: Provider<T>?, vararg paths: List<String>): Provider<T>
inline fun <T : Any> ConfigProvider.strongEntryOrElse(default: T?, vararg paths: Array<String>): Provider<T>
inline fun <T : Any> ConfigProvider.strongEntryOrElse(default: T?, vararg path: String): Provider<T>
inline fun <T : Any> ConfigProvider.strongEntryOrElse(default: Provider<T>?, vararg paths: Array<String>): Provider<T>
inline fun <T : Any> ConfigProvider.strongEntryOrElse(default: Provider<T>?, vararg path: String): Provider<T>
fun <T : Any> ConfigProvider.strongEntryOrElse(type: KType, default: Provider<T>?, vararg paths: Array<String>): Provider<T>
fun <T : Any> ConfigProvider.strongEntryOrElse(type: KType, default: Provider<T>?, vararg path: String): Provider<T>
Link copied to clipboard
fun Provider<ConfigProvider>.strongNode(vararg path: String): Provider<ConfigProvider>

Gets a ConfigProvider scoped to the sub-node at path.

Link copied to clipboard
inline fun <T : Any> Provider<ConfigProvider>.strongOptionalEntry(vararg path: String): Provider<T?>
inline fun <T : Any> ConfigProvider.strongOptionalEntry(vararg path: String): Provider<T?>

Gets an optional entry Provider for a value of type T under path, whose value will be null if the entry does not exist or could not be deserialized due to SerializationException.

inline fun <T : Any> Provider<ConfigProvider>.strongOptionalEntry(vararg paths: List<String>): Provider<T?>
inline fun <T : Any> ConfigProvider.strongOptionalEntry(vararg paths: List<String>): Provider<T?>

Gets an optional entry Provider for a value of type T under the first existing path from paths, whose value will be null if no entry exists or could not be deserialized due to SerializationException.

fun <T : Any> Provider<ConfigProvider>.strongOptionalEntry(serializer: KSerializer<T>, vararg path: String): Provider<T?>
fun <T : Any> ConfigProvider.strongOptionalEntry(serializer: KSerializer<T>, vararg path: String): Provider<T?>

Gets an optional entry Provider for a value deserialized by serializer under path, whose value will be null if the entry does not exist or could not be deserialized due to SerializationException.

fun <T : Any> Provider<ConfigProvider>.strongOptionalEntry(serializer: KSerializer<T>, vararg paths: List<String>): Provider<T?>

Gets an optional entry Provider for a value deserialized by serializer under the first existing path from paths, whose value will be null if no entry exists or could not be deserialized due to SerializationException.

Link copied to clipboard
fun writeJsonAsYaml(json: JsonElement, settings: DumpSettings = DUMP_SETTINGS): String

Writes json as YAML with settings into a String.

fun writeJsonAsYaml(json: JsonElement, settings: DumpSettings = DUMP_SETTINGS, writer: StreamDataWriter)

Writes json as YAML with settings into writer.