INNER CODE UNIT · Kotlin

DIDefinition

kosi-libs/Kodein · kodein-di/src/commonMain/kotlin/org/kodein/di/BindingsMap.kt:22

public class DIDefinition<C : Any, A, T: Any>(binding: DIBinding<C, A, T>, fromModule: String?, public val tree: DITree) : DIDefining<C, A, T>(binding, fromModule)

/**
 * A Map containing all bindings associated to their keys
 */
public typealias BindingsMap = Map<DI.Key<*, *, *>, List<DIDefinition<*, *, *>>>

private fun BindingsMap.descriptionImpl(withOverrides: Boolean, ident: Int, keyBindDisp: DI.Key<*, *, *>.() -> String, bindingDisp: DIBinding<*, *, *>.() -> String): String {

    fun StringBuilder.appendBindings(ident: Int, entries: List<Map.Entry<DI.Key<*, *, *>, List<DIDefinition<*, *, *>>>>) =
            entries.forEach {
                val keyDescription = it.key.keyBindDisp()
                append("${" ".repeat(ident)}$keyDescription { ${it.value.first().binding.bindingDisp()} }")
                if (withOverrides) {
                    val subIdent = keyDescription.length - 4
                    it.value.subList(1, it.value.size).forEach {
                        append("${" ".repeat(subIdent)}overrides ${it.binding.bindingDisp()}")
                    }

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…