INNER CODE UNIT · Kotlin
Lazy
kosi-libs/Kodein · kodein-di/src/commonMain/kotlin/org/kodein/di/DIAware.kt:30
public class Lazy<C : Any>(override val type: TypeToken<in C>, public val getValue: () -> C) : DIContext<C> {
override val value: C by lazy(getValue)
}
public companion object {
public operator fun <C : Any> invoke(type: TypeToken<in C>, value: C): DIContext<C> = Value(type, value)
public operator fun <C : Any> invoke(type: TypeToken<in C>, getValue: () -> C): DIContext<C> =
Lazy(type, getValue)
}
}
@Suppress("UNCHECKED_CAST")
internal inline val DIContext<*>.anyType get() = type as TypeToken<in Any>
private object Contexes {
val AnyDIContext = DIContext(TypeToken.Any, Any())
}