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())
}

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…