factoryOf

inline fun <R> Module.factoryOf(crossinline constructor: () -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>

Declare a Module.factory definition by resolving a constructor reference for the dependency. The resolution is done at compile time by leveraging inline functions, no reflection is required.

Example:

class Model

val myModule = module {
factoryOf(::Model)
}

Author

Marcello Galhardo

See also


inline fun <R, T1> Module.factoryOf(crossinline constructor: (T1) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2> Module.factoryOf(crossinline constructor: (T1, T2) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3> Module.factoryOf(crossinline constructor: (T1, T2, T3) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4> Module.factoryOf(crossinline constructor: (T1, T2, T3, T4) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5> Module.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5, T6> Module.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5, T6) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5, T6, T7> Module.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5, T6, T7) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5, T6, T7, T8> Module.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5, T6, T7, T8) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5, T6, T7, T8, T9> Module.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5, T6, T7, T8, T9) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Module.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Module.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Module.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Module.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> Module.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Module.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> Module.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17> Module.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18> Module.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19> Module.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20> Module.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21> Module.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22> Module.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1> ScopeDSL.factoryOf(crossinline constructor: (T1) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2> ScopeDSL.factoryOf(crossinline constructor: (T1, T2) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3> ScopeDSL.factoryOf(crossinline constructor: (T1, T2, T3) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4> ScopeDSL.factoryOf(crossinline constructor: (T1, T2, T3, T4) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5> ScopeDSL.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5, T6> ScopeDSL.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5, T6) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5, T6, T7> ScopeDSL.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5, T6, T7) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5, T6, T7, T8> ScopeDSL.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5, T6, T7, T8) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5, T6, T7, T8, T9> ScopeDSL.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5, T6, T7, T8, T9) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> ScopeDSL.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> ScopeDSL.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> ScopeDSL.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> ScopeDSL.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> ScopeDSL.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> ScopeDSL.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> ScopeDSL.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17> ScopeDSL.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18> ScopeDSL.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19> ScopeDSL.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20> ScopeDSL.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21> ScopeDSL.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>
inline fun <R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22> ScopeDSL.factoryOf(crossinline constructor: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22) -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>

See also


inline fun <R> ScopeDSL.factoryOf(crossinline constructor: () -> R, noinline options: DefinitionOptions<R>? = null): KoinDefinition<R>

Declare a ScopeDSL.factory definition by resolving a constructor reference for the dependency. The resolution is done at compile time by leveraging inline functions, no reflection is required.

Example:

class Model

val myModule = module {
factoryOf(::Model)
}

Author

Marcello Galhardo

See also