Package-level declarations

Types

Link copied to clipboard
data class ConstructorParamMetadata<T : Any>(val parameter: KParameter, val property: KProperty1<T, Any?>, val type: KType, val keyName: String)

Metadata for a single constructor parameter and its corresponding property in a data class.

Link copied to clipboard
data class DataObjectClassMetadata<T : Any>(val constructor: KFunction<T>, val constructorProperties: List<ConstructorParamMetadata<T>>)

Pre-computed reflection metadata for a data class.

Link copied to clipboard

Token used to represent a missing value during instantiation, avoiding the need for allocating result wrappers like Result or Optional.

Link copied to clipboard

A global cache for Kotlin reflection metadata of data classes.

Functions

Link copied to clipboard
fun <T : Any> instantiateDataObject(kClass: KClass<T>, metadata: DataObjectClassMetadata<T>, resolveValue: (ConstructorParamMetadata<T>) -> Any?): T

Instantiates a data class based on its metadata.

Link copied to clipboard
fun <T : Any> T.toDataMap(vararg excludeKeys: String): Map<String, Any?>

Converts a data class object to a map, where keys are mapped property names and values are the property values.

Link copied to clipboard
inline fun <T : Any> Map<String, Any?>.toDataObject(): T
fun <T : Any> Map<String, Any?>.toDataObject(kClass: KClass<T>): T

Converts a map to a data class instance.