
commonMain.org.kodein.di.SetBindings.kt Maven / Gradle / Ivy
@file:Suppress("unused", "UNCHECKED_CAST")
package org.kodein.di
import org.kodein.di.bindings.ArgSetBinding
import org.kodein.di.bindings.InSet
import org.kodein.di.bindings.SetBinding
import org.kodein.di.bindings.TypeBinderInSet
import org.kodein.type.TypeToken
import org.kodein.type.erasedComp
import org.kodein.type.generic
/**
* Creates a set: multiple bindings can be added in this set.
*
* T generics will be erased!
*
* @param T The created type.
* @return A set binding ready to be bound.
*/
@Suppress("RemoveExplicitTypeArguments")
public inline fun DI.Builder.setBinding(): SetBinding = SetBinding(TypeToken.Any, generic(), erasedComp(Set::class, generic()) as TypeToken>)
/**
* Creates a set: multiple bindings can be added in this set.
*
* A & T generics will be erased!
*
* @param A The argument type.
* @param T The created type.
* @return A set binding ready to be bound.
*/
@Suppress("RemoveExplicitTypeArguments")
public inline fun DI.Builder.argSetBinding(): ArgSetBinding = ArgSetBinding(TypeToken.Any, generic(), generic(), erasedComp(Set::class, generic()) as TypeToken>)
/**
* Defines that the binding will be saved in a set binding.
*
* T generics will be erased!
*
* @param T The type of the binding.
*/
public inline fun DI.Builder.TypeBinder.inSet(): TypeBinderInSet> = InSet(erasedComp(Set::class, generic()) as TypeToken>)
© 2015 - 2025 Weber Informatics LLC | Privacy Policy