2023-12-18 21:40:30 +01:00
// Code generated by go generate; DO NOT EDIT.
// This file was generated by robots at
2024-02-29 16:27:23 +01:00
// 2024-02-29 16:18:47.9991921 +0100 CET m=+0.012914901
2023-12-18 21:40:30 +01:00
package di
import (
A "github.com/IBM/fp-go/array"
DIE "github.com/IBM/fp-go/di/erasure"
E "github.com/IBM/fp-go/either"
IOE "github.com/IBM/fp-go/ioeither"
T "github.com/IBM/fp-go/tuple"
)
// eraseProviderFactory1 creates a function that takes a variadic number of untyped arguments and from a function of 1 strongly typed arguments and 1 dependencies
func eraseProviderFactory1 [ T1 any , R any ] (
d1 Dependency [ T1 ] ,
f func ( T1 ) IOE . IOEither [ error , R ] ) func ( params ... any ) IOE . IOEither [ error , any ] {
ft := eraseTuple ( T . Tupled1 ( f ) )
t1 := lookupAt [ T1 ] ( 0 , d1 )
return func ( params ... any ) IOE . IOEither [ error , any ] {
return ft ( E . SequenceT1 (
t1 ( params ) ,
) )
}
}
// MakeProviderFactory1 creates a [DIE.ProviderFactory] from a function with 1 arguments and 1 dependencies
func MakeProviderFactory1 [ T1 any , R any ] (
d1 Dependency [ T1 ] ,
f func ( T1 ) IOE . IOEither [ error , R ] ,
) DIE . ProviderFactory {
return DIE . MakeProviderFactory (
A . From [ DIE . Dependency ] (
d1 ,
) ,
eraseProviderFactory1 (
d1 ,
f ,
) ,
)
}
2024-02-29 16:27:23 +01:00
// MakeTokenWithDefault1 creates an [InjectionToken] with a default implementation with 1 dependencies
2023-12-18 21:40:30 +01:00
func MakeTokenWithDefault1 [ T1 any , R any ] (
name string ,
d1 Dependency [ T1 ] ,
f func ( T1 ) IOE . IOEither [ error , R ] ,
) InjectionToken [ R ] {
return MakeTokenWithDefault [ R ] ( name , MakeProviderFactory1 (
d1 ,
f ,
) )
}
// MakeProvider1 creates a [DIE.Provider] for an [InjectionToken] from a function with 1 dependencies
func MakeProvider1 [ T1 any , R any ] (
token InjectionToken [ R ] ,
d1 Dependency [ T1 ] ,
f func ( T1 ) IOE . IOEither [ error , R ] ,
) DIE . Provider {
return DIE . MakeProvider (
token ,
MakeProviderFactory1 (
d1 ,
f ,
) )
}
// eraseProviderFactory2 creates a function that takes a variadic number of untyped arguments and from a function of 2 strongly typed arguments and 2 dependencies
func eraseProviderFactory2 [ T1 , T2 any , R any ] (
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
f func ( T1 , T2 ) IOE . IOEither [ error , R ] ) func ( params ... any ) IOE . IOEither [ error , any ] {
ft := eraseTuple ( T . Tupled2 ( f ) )
t1 := lookupAt [ T1 ] ( 0 , d1 )
t2 := lookupAt [ T2 ] ( 1 , d2 )
return func ( params ... any ) IOE . IOEither [ error , any ] {
return ft ( E . SequenceT2 (
t1 ( params ) ,
t2 ( params ) ,
) )
}
}
// MakeProviderFactory2 creates a [DIE.ProviderFactory] from a function with 2 arguments and 2 dependencies
func MakeProviderFactory2 [ T1 , T2 any , R any ] (
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
f func ( T1 , T2 ) IOE . IOEither [ error , R ] ,
) DIE . ProviderFactory {
return DIE . MakeProviderFactory (
A . From [ DIE . Dependency ] (
d1 ,
d2 ,
) ,
eraseProviderFactory2 (
d1 ,
d2 ,
f ,
) ,
)
}
2024-02-29 16:27:23 +01:00
// MakeTokenWithDefault2 creates an [InjectionToken] with a default implementation with 2 dependencies
2023-12-18 21:40:30 +01:00
func MakeTokenWithDefault2 [ T1 , T2 any , R any ] (
name string ,
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
f func ( T1 , T2 ) IOE . IOEither [ error , R ] ,
) InjectionToken [ R ] {
return MakeTokenWithDefault [ R ] ( name , MakeProviderFactory2 (
d1 ,
d2 ,
f ,
) )
}
// MakeProvider2 creates a [DIE.Provider] for an [InjectionToken] from a function with 2 dependencies
func MakeProvider2 [ T1 , T2 any , R any ] (
token InjectionToken [ R ] ,
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
f func ( T1 , T2 ) IOE . IOEither [ error , R ] ,
) DIE . Provider {
return DIE . MakeProvider (
token ,
MakeProviderFactory2 (
d1 ,
d2 ,
f ,
) )
}
// eraseProviderFactory3 creates a function that takes a variadic number of untyped arguments and from a function of 3 strongly typed arguments and 3 dependencies
func eraseProviderFactory3 [ T1 , T2 , T3 any , R any ] (
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
f func ( T1 , T2 , T3 ) IOE . IOEither [ error , R ] ) func ( params ... any ) IOE . IOEither [ error , any ] {
ft := eraseTuple ( T . Tupled3 ( f ) )
t1 := lookupAt [ T1 ] ( 0 , d1 )
t2 := lookupAt [ T2 ] ( 1 , d2 )
t3 := lookupAt [ T3 ] ( 2 , d3 )
return func ( params ... any ) IOE . IOEither [ error , any ] {
return ft ( E . SequenceT3 (
t1 ( params ) ,
t2 ( params ) ,
t3 ( params ) ,
) )
}
}
// MakeProviderFactory3 creates a [DIE.ProviderFactory] from a function with 3 arguments and 3 dependencies
func MakeProviderFactory3 [ T1 , T2 , T3 any , R any ] (
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
f func ( T1 , T2 , T3 ) IOE . IOEither [ error , R ] ,
) DIE . ProviderFactory {
return DIE . MakeProviderFactory (
A . From [ DIE . Dependency ] (
d1 ,
d2 ,
d3 ,
) ,
eraseProviderFactory3 (
d1 ,
d2 ,
d3 ,
f ,
) ,
)
}
2024-02-29 16:27:23 +01:00
// MakeTokenWithDefault3 creates an [InjectionToken] with a default implementation with 3 dependencies
2023-12-18 21:40:30 +01:00
func MakeTokenWithDefault3 [ T1 , T2 , T3 any , R any ] (
name string ,
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
f func ( T1 , T2 , T3 ) IOE . IOEither [ error , R ] ,
) InjectionToken [ R ] {
return MakeTokenWithDefault [ R ] ( name , MakeProviderFactory3 (
d1 ,
d2 ,
d3 ,
f ,
) )
}
// MakeProvider3 creates a [DIE.Provider] for an [InjectionToken] from a function with 3 dependencies
func MakeProvider3 [ T1 , T2 , T3 any , R any ] (
token InjectionToken [ R ] ,
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
f func ( T1 , T2 , T3 ) IOE . IOEither [ error , R ] ,
) DIE . Provider {
return DIE . MakeProvider (
token ,
MakeProviderFactory3 (
d1 ,
d2 ,
d3 ,
f ,
) )
}
// eraseProviderFactory4 creates a function that takes a variadic number of untyped arguments and from a function of 4 strongly typed arguments and 4 dependencies
func eraseProviderFactory4 [ T1 , T2 , T3 , T4 any , R any ] (
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
f func ( T1 , T2 , T3 , T4 ) IOE . IOEither [ error , R ] ) func ( params ... any ) IOE . IOEither [ error , any ] {
ft := eraseTuple ( T . Tupled4 ( f ) )
t1 := lookupAt [ T1 ] ( 0 , d1 )
t2 := lookupAt [ T2 ] ( 1 , d2 )
t3 := lookupAt [ T3 ] ( 2 , d3 )
t4 := lookupAt [ T4 ] ( 3 , d4 )
return func ( params ... any ) IOE . IOEither [ error , any ] {
return ft ( E . SequenceT4 (
t1 ( params ) ,
t2 ( params ) ,
t3 ( params ) ,
t4 ( params ) ,
) )
}
}
// MakeProviderFactory4 creates a [DIE.ProviderFactory] from a function with 4 arguments and 4 dependencies
func MakeProviderFactory4 [ T1 , T2 , T3 , T4 any , R any ] (
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
f func ( T1 , T2 , T3 , T4 ) IOE . IOEither [ error , R ] ,
) DIE . ProviderFactory {
return DIE . MakeProviderFactory (
A . From [ DIE . Dependency ] (
d1 ,
d2 ,
d3 ,
d4 ,
) ,
eraseProviderFactory4 (
d1 ,
d2 ,
d3 ,
d4 ,
f ,
) ,
)
}
2024-02-29 16:27:23 +01:00
// MakeTokenWithDefault4 creates an [InjectionToken] with a default implementation with 4 dependencies
2023-12-18 21:40:30 +01:00
func MakeTokenWithDefault4 [ T1 , T2 , T3 , T4 any , R any ] (
name string ,
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
f func ( T1 , T2 , T3 , T4 ) IOE . IOEither [ error , R ] ,
) InjectionToken [ R ] {
return MakeTokenWithDefault [ R ] ( name , MakeProviderFactory4 (
d1 ,
d2 ,
d3 ,
d4 ,
f ,
) )
}
// MakeProvider4 creates a [DIE.Provider] for an [InjectionToken] from a function with 4 dependencies
func MakeProvider4 [ T1 , T2 , T3 , T4 any , R any ] (
token InjectionToken [ R ] ,
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
f func ( T1 , T2 , T3 , T4 ) IOE . IOEither [ error , R ] ,
) DIE . Provider {
return DIE . MakeProvider (
token ,
MakeProviderFactory4 (
d1 ,
d2 ,
d3 ,
d4 ,
f ,
) )
}
// eraseProviderFactory5 creates a function that takes a variadic number of untyped arguments and from a function of 5 strongly typed arguments and 5 dependencies
func eraseProviderFactory5 [ T1 , T2 , T3 , T4 , T5 any , R any ] (
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
f func ( T1 , T2 , T3 , T4 , T5 ) IOE . IOEither [ error , R ] ) func ( params ... any ) IOE . IOEither [ error , any ] {
ft := eraseTuple ( T . Tupled5 ( f ) )
t1 := lookupAt [ T1 ] ( 0 , d1 )
t2 := lookupAt [ T2 ] ( 1 , d2 )
t3 := lookupAt [ T3 ] ( 2 , d3 )
t4 := lookupAt [ T4 ] ( 3 , d4 )
t5 := lookupAt [ T5 ] ( 4 , d5 )
return func ( params ... any ) IOE . IOEither [ error , any ] {
return ft ( E . SequenceT5 (
t1 ( params ) ,
t2 ( params ) ,
t3 ( params ) ,
t4 ( params ) ,
t5 ( params ) ,
) )
}
}
// MakeProviderFactory5 creates a [DIE.ProviderFactory] from a function with 5 arguments and 5 dependencies
func MakeProviderFactory5 [ T1 , T2 , T3 , T4 , T5 any , R any ] (
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
f func ( T1 , T2 , T3 , T4 , T5 ) IOE . IOEither [ error , R ] ,
) DIE . ProviderFactory {
return DIE . MakeProviderFactory (
A . From [ DIE . Dependency ] (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
) ,
eraseProviderFactory5 (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
f ,
) ,
)
}
2024-02-29 16:27:23 +01:00
// MakeTokenWithDefault5 creates an [InjectionToken] with a default implementation with 5 dependencies
2023-12-18 21:40:30 +01:00
func MakeTokenWithDefault5 [ T1 , T2 , T3 , T4 , T5 any , R any ] (
name string ,
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
f func ( T1 , T2 , T3 , T4 , T5 ) IOE . IOEither [ error , R ] ,
) InjectionToken [ R ] {
return MakeTokenWithDefault [ R ] ( name , MakeProviderFactory5 (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
f ,
) )
}
// MakeProvider5 creates a [DIE.Provider] for an [InjectionToken] from a function with 5 dependencies
func MakeProvider5 [ T1 , T2 , T3 , T4 , T5 any , R any ] (
token InjectionToken [ R ] ,
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
f func ( T1 , T2 , T3 , T4 , T5 ) IOE . IOEither [ error , R ] ,
) DIE . Provider {
return DIE . MakeProvider (
token ,
MakeProviderFactory5 (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
f ,
) )
}
// eraseProviderFactory6 creates a function that takes a variadic number of untyped arguments and from a function of 6 strongly typed arguments and 6 dependencies
func eraseProviderFactory6 [ T1 , T2 , T3 , T4 , T5 , T6 any , R any ] (
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 ) IOE . IOEither [ error , R ] ) func ( params ... any ) IOE . IOEither [ error , any ] {
ft := eraseTuple ( T . Tupled6 ( f ) )
t1 := lookupAt [ T1 ] ( 0 , d1 )
t2 := lookupAt [ T2 ] ( 1 , d2 )
t3 := lookupAt [ T3 ] ( 2 , d3 )
t4 := lookupAt [ T4 ] ( 3 , d4 )
t5 := lookupAt [ T5 ] ( 4 , d5 )
t6 := lookupAt [ T6 ] ( 5 , d6 )
return func ( params ... any ) IOE . IOEither [ error , any ] {
return ft ( E . SequenceT6 (
t1 ( params ) ,
t2 ( params ) ,
t3 ( params ) ,
t4 ( params ) ,
t5 ( params ) ,
t6 ( params ) ,
) )
}
}
// MakeProviderFactory6 creates a [DIE.ProviderFactory] from a function with 6 arguments and 6 dependencies
func MakeProviderFactory6 [ T1 , T2 , T3 , T4 , T5 , T6 any , R any ] (
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 ) IOE . IOEither [ error , R ] ,
) DIE . ProviderFactory {
return DIE . MakeProviderFactory (
A . From [ DIE . Dependency ] (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
) ,
eraseProviderFactory6 (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
f ,
) ,
)
}
2024-02-29 16:27:23 +01:00
// MakeTokenWithDefault6 creates an [InjectionToken] with a default implementation with 6 dependencies
2023-12-18 21:40:30 +01:00
func MakeTokenWithDefault6 [ T1 , T2 , T3 , T4 , T5 , T6 any , R any ] (
name string ,
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 ) IOE . IOEither [ error , R ] ,
) InjectionToken [ R ] {
return MakeTokenWithDefault [ R ] ( name , MakeProviderFactory6 (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
f ,
) )
}
// MakeProvider6 creates a [DIE.Provider] for an [InjectionToken] from a function with 6 dependencies
func MakeProvider6 [ T1 , T2 , T3 , T4 , T5 , T6 any , R any ] (
token InjectionToken [ R ] ,
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 ) IOE . IOEither [ error , R ] ,
) DIE . Provider {
return DIE . MakeProvider (
token ,
MakeProviderFactory6 (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
f ,
) )
}
// eraseProviderFactory7 creates a function that takes a variadic number of untyped arguments and from a function of 7 strongly typed arguments and 7 dependencies
func eraseProviderFactory7 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 any , R any ] (
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 ) IOE . IOEither [ error , R ] ) func ( params ... any ) IOE . IOEither [ error , any ] {
ft := eraseTuple ( T . Tupled7 ( f ) )
t1 := lookupAt [ T1 ] ( 0 , d1 )
t2 := lookupAt [ T2 ] ( 1 , d2 )
t3 := lookupAt [ T3 ] ( 2 , d3 )
t4 := lookupAt [ T4 ] ( 3 , d4 )
t5 := lookupAt [ T5 ] ( 4 , d5 )
t6 := lookupAt [ T6 ] ( 5 , d6 )
t7 := lookupAt [ T7 ] ( 6 , d7 )
return func ( params ... any ) IOE . IOEither [ error , any ] {
return ft ( E . SequenceT7 (
t1 ( params ) ,
t2 ( params ) ,
t3 ( params ) ,
t4 ( params ) ,
t5 ( params ) ,
t6 ( params ) ,
t7 ( params ) ,
) )
}
}
// MakeProviderFactory7 creates a [DIE.ProviderFactory] from a function with 7 arguments and 7 dependencies
func MakeProviderFactory7 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 any , R any ] (
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 ) IOE . IOEither [ error , R ] ,
) DIE . ProviderFactory {
return DIE . MakeProviderFactory (
A . From [ DIE . Dependency ] (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
) ,
eraseProviderFactory7 (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
f ,
) ,
)
}
2024-02-29 16:27:23 +01:00
// MakeTokenWithDefault7 creates an [InjectionToken] with a default implementation with 7 dependencies
2023-12-18 21:40:30 +01:00
func MakeTokenWithDefault7 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 any , R any ] (
name string ,
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 ) IOE . IOEither [ error , R ] ,
) InjectionToken [ R ] {
return MakeTokenWithDefault [ R ] ( name , MakeProviderFactory7 (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
f ,
) )
}
// MakeProvider7 creates a [DIE.Provider] for an [InjectionToken] from a function with 7 dependencies
func MakeProvider7 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 any , R any ] (
token InjectionToken [ R ] ,
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 ) IOE . IOEither [ error , R ] ,
) DIE . Provider {
return DIE . MakeProvider (
token ,
MakeProviderFactory7 (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
f ,
) )
}
// eraseProviderFactory8 creates a function that takes a variadic number of untyped arguments and from a function of 8 strongly typed arguments and 8 dependencies
func eraseProviderFactory8 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 any , R any ] (
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
d8 Dependency [ T8 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ) IOE . IOEither [ error , R ] ) func ( params ... any ) IOE . IOEither [ error , any ] {
ft := eraseTuple ( T . Tupled8 ( f ) )
t1 := lookupAt [ T1 ] ( 0 , d1 )
t2 := lookupAt [ T2 ] ( 1 , d2 )
t3 := lookupAt [ T3 ] ( 2 , d3 )
t4 := lookupAt [ T4 ] ( 3 , d4 )
t5 := lookupAt [ T5 ] ( 4 , d5 )
t6 := lookupAt [ T6 ] ( 5 , d6 )
t7 := lookupAt [ T7 ] ( 6 , d7 )
t8 := lookupAt [ T8 ] ( 7 , d8 )
return func ( params ... any ) IOE . IOEither [ error , any ] {
return ft ( E . SequenceT8 (
t1 ( params ) ,
t2 ( params ) ,
t3 ( params ) ,
t4 ( params ) ,
t5 ( params ) ,
t6 ( params ) ,
t7 ( params ) ,
t8 ( params ) ,
) )
}
}
// MakeProviderFactory8 creates a [DIE.ProviderFactory] from a function with 8 arguments and 8 dependencies
func MakeProviderFactory8 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 any , R any ] (
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
d8 Dependency [ T8 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ) IOE . IOEither [ error , R ] ,
) DIE . ProviderFactory {
return DIE . MakeProviderFactory (
A . From [ DIE . Dependency ] (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
d8 ,
) ,
eraseProviderFactory8 (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
d8 ,
f ,
) ,
)
}
2024-02-29 16:27:23 +01:00
// MakeTokenWithDefault8 creates an [InjectionToken] with a default implementation with 8 dependencies
2023-12-18 21:40:30 +01:00
func MakeTokenWithDefault8 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 any , R any ] (
name string ,
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
d8 Dependency [ T8 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ) IOE . IOEither [ error , R ] ,
) InjectionToken [ R ] {
return MakeTokenWithDefault [ R ] ( name , MakeProviderFactory8 (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
d8 ,
f ,
) )
}
// MakeProvider8 creates a [DIE.Provider] for an [InjectionToken] from a function with 8 dependencies
func MakeProvider8 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 any , R any ] (
token InjectionToken [ R ] ,
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
d8 Dependency [ T8 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ) IOE . IOEither [ error , R ] ,
) DIE . Provider {
return DIE . MakeProvider (
token ,
MakeProviderFactory8 (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
d8 ,
f ,
) )
}
// eraseProviderFactory9 creates a function that takes a variadic number of untyped arguments and from a function of 9 strongly typed arguments and 9 dependencies
func eraseProviderFactory9 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 any , R any ] (
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
d8 Dependency [ T8 ] ,
d9 Dependency [ T9 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ) IOE . IOEither [ error , R ] ) func ( params ... any ) IOE . IOEither [ error , any ] {
ft := eraseTuple ( T . Tupled9 ( f ) )
t1 := lookupAt [ T1 ] ( 0 , d1 )
t2 := lookupAt [ T2 ] ( 1 , d2 )
t3 := lookupAt [ T3 ] ( 2 , d3 )
t4 := lookupAt [ T4 ] ( 3 , d4 )
t5 := lookupAt [ T5 ] ( 4 , d5 )
t6 := lookupAt [ T6 ] ( 5 , d6 )
t7 := lookupAt [ T7 ] ( 6 , d7 )
t8 := lookupAt [ T8 ] ( 7 , d8 )
t9 := lookupAt [ T9 ] ( 8 , d9 )
return func ( params ... any ) IOE . IOEither [ error , any ] {
return ft ( E . SequenceT9 (
t1 ( params ) ,
t2 ( params ) ,
t3 ( params ) ,
t4 ( params ) ,
t5 ( params ) ,
t6 ( params ) ,
t7 ( params ) ,
t8 ( params ) ,
t9 ( params ) ,
) )
}
}
// MakeProviderFactory9 creates a [DIE.ProviderFactory] from a function with 9 arguments and 9 dependencies
func MakeProviderFactory9 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 any , R any ] (
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
d8 Dependency [ T8 ] ,
d9 Dependency [ T9 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ) IOE . IOEither [ error , R ] ,
) DIE . ProviderFactory {
return DIE . MakeProviderFactory (
A . From [ DIE . Dependency ] (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
d8 ,
d9 ,
) ,
eraseProviderFactory9 (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
d8 ,
d9 ,
f ,
) ,
)
}
2024-02-29 16:27:23 +01:00
// MakeTokenWithDefault9 creates an [InjectionToken] with a default implementation with 9 dependencies
2023-12-18 21:40:30 +01:00
func MakeTokenWithDefault9 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 any , R any ] (
name string ,
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
d8 Dependency [ T8 ] ,
d9 Dependency [ T9 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ) IOE . IOEither [ error , R ] ,
) InjectionToken [ R ] {
return MakeTokenWithDefault [ R ] ( name , MakeProviderFactory9 (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
d8 ,
d9 ,
f ,
) )
}
// MakeProvider9 creates a [DIE.Provider] for an [InjectionToken] from a function with 9 dependencies
func MakeProvider9 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 any , R any ] (
token InjectionToken [ R ] ,
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
d8 Dependency [ T8 ] ,
d9 Dependency [ T9 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ) IOE . IOEither [ error , R ] ,
) DIE . Provider {
return DIE . MakeProvider (
token ,
MakeProviderFactory9 (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
d8 ,
d9 ,
f ,
) )
}
// eraseProviderFactory10 creates a function that takes a variadic number of untyped arguments and from a function of 10 strongly typed arguments and 10 dependencies
func eraseProviderFactory10 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 any , R any ] (
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
d8 Dependency [ T8 ] ,
d9 Dependency [ T9 ] ,
d10 Dependency [ T10 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ) IOE . IOEither [ error , R ] ) func ( params ... any ) IOE . IOEither [ error , any ] {
ft := eraseTuple ( T . Tupled10 ( f ) )
t1 := lookupAt [ T1 ] ( 0 , d1 )
t2 := lookupAt [ T2 ] ( 1 , d2 )
t3 := lookupAt [ T3 ] ( 2 , d3 )
t4 := lookupAt [ T4 ] ( 3 , d4 )
t5 := lookupAt [ T5 ] ( 4 , d5 )
t6 := lookupAt [ T6 ] ( 5 , d6 )
t7 := lookupAt [ T7 ] ( 6 , d7 )
t8 := lookupAt [ T8 ] ( 7 , d8 )
t9 := lookupAt [ T9 ] ( 8 , d9 )
t10 := lookupAt [ T10 ] ( 9 , d10 )
return func ( params ... any ) IOE . IOEither [ error , any ] {
return ft ( E . SequenceT10 (
t1 ( params ) ,
t2 ( params ) ,
t3 ( params ) ,
t4 ( params ) ,
t5 ( params ) ,
t6 ( params ) ,
t7 ( params ) ,
t8 ( params ) ,
t9 ( params ) ,
t10 ( params ) ,
) )
}
}
// MakeProviderFactory10 creates a [DIE.ProviderFactory] from a function with 10 arguments and 10 dependencies
func MakeProviderFactory10 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 any , R any ] (
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
d8 Dependency [ T8 ] ,
d9 Dependency [ T9 ] ,
d10 Dependency [ T10 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ) IOE . IOEither [ error , R ] ,
) DIE . ProviderFactory {
return DIE . MakeProviderFactory (
A . From [ DIE . Dependency ] (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
d8 ,
d9 ,
d10 ,
) ,
eraseProviderFactory10 (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
d8 ,
d9 ,
d10 ,
f ,
) ,
)
}
2024-02-29 16:27:23 +01:00
// MakeTokenWithDefault10 creates an [InjectionToken] with a default implementation with 10 dependencies
2023-12-18 21:40:30 +01:00
func MakeTokenWithDefault10 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 any , R any ] (
name string ,
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
d8 Dependency [ T8 ] ,
d9 Dependency [ T9 ] ,
d10 Dependency [ T10 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ) IOE . IOEither [ error , R ] ,
) InjectionToken [ R ] {
return MakeTokenWithDefault [ R ] ( name , MakeProviderFactory10 (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
d8 ,
d9 ,
d10 ,
f ,
) )
}
// MakeProvider10 creates a [DIE.Provider] for an [InjectionToken] from a function with 10 dependencies
func MakeProvider10 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 any , R any ] (
token InjectionToken [ R ] ,
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
d8 Dependency [ T8 ] ,
d9 Dependency [ T9 ] ,
d10 Dependency [ T10 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ) IOE . IOEither [ error , R ] ,
) DIE . Provider {
return DIE . MakeProvider (
token ,
MakeProviderFactory10 (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
d8 ,
d9 ,
d10 ,
f ,
) )
}
2024-02-29 16:27:23 +01:00
// eraseProviderFactory11 creates a function that takes a variadic number of untyped arguments and from a function of 11 strongly typed arguments and 11 dependencies
func eraseProviderFactory11 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 any , R any ] (
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
d8 Dependency [ T8 ] ,
d9 Dependency [ T9 ] ,
d10 Dependency [ T10 ] ,
d11 Dependency [ T11 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ) IOE . IOEither [ error , R ] ) func ( params ... any ) IOE . IOEither [ error , any ] {
ft := eraseTuple ( T . Tupled11 ( f ) )
t1 := lookupAt [ T1 ] ( 0 , d1 )
t2 := lookupAt [ T2 ] ( 1 , d2 )
t3 := lookupAt [ T3 ] ( 2 , d3 )
t4 := lookupAt [ T4 ] ( 3 , d4 )
t5 := lookupAt [ T5 ] ( 4 , d5 )
t6 := lookupAt [ T6 ] ( 5 , d6 )
t7 := lookupAt [ T7 ] ( 6 , d7 )
t8 := lookupAt [ T8 ] ( 7 , d8 )
t9 := lookupAt [ T9 ] ( 8 , d9 )
t10 := lookupAt [ T10 ] ( 9 , d10 )
t11 := lookupAt [ T11 ] ( 10 , d11 )
return func ( params ... any ) IOE . IOEither [ error , any ] {
return ft ( E . SequenceT11 (
t1 ( params ) ,
t2 ( params ) ,
t3 ( params ) ,
t4 ( params ) ,
t5 ( params ) ,
t6 ( params ) ,
t7 ( params ) ,
t8 ( params ) ,
t9 ( params ) ,
t10 ( params ) ,
t11 ( params ) ,
) )
}
}
// MakeProviderFactory11 creates a [DIE.ProviderFactory] from a function with 11 arguments and 11 dependencies
func MakeProviderFactory11 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 any , R any ] (
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
d8 Dependency [ T8 ] ,
d9 Dependency [ T9 ] ,
d10 Dependency [ T10 ] ,
d11 Dependency [ T11 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ) IOE . IOEither [ error , R ] ,
) DIE . ProviderFactory {
return DIE . MakeProviderFactory (
A . From [ DIE . Dependency ] (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
d8 ,
d9 ,
d10 ,
d11 ,
) ,
eraseProviderFactory11 (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
d8 ,
d9 ,
d10 ,
d11 ,
f ,
) ,
)
}
// MakeTokenWithDefault11 creates an [InjectionToken] with a default implementation with 11 dependencies
func MakeTokenWithDefault11 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 any , R any ] (
name string ,
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
d8 Dependency [ T8 ] ,
d9 Dependency [ T9 ] ,
d10 Dependency [ T10 ] ,
d11 Dependency [ T11 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ) IOE . IOEither [ error , R ] ,
) InjectionToken [ R ] {
return MakeTokenWithDefault [ R ] ( name , MakeProviderFactory11 (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
d8 ,
d9 ,
d10 ,
d11 ,
f ,
) )
}
// MakeProvider11 creates a [DIE.Provider] for an [InjectionToken] from a function with 11 dependencies
func MakeProvider11 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 any , R any ] (
token InjectionToken [ R ] ,
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
d8 Dependency [ T8 ] ,
d9 Dependency [ T9 ] ,
d10 Dependency [ T10 ] ,
d11 Dependency [ T11 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ) IOE . IOEither [ error , R ] ,
) DIE . Provider {
return DIE . MakeProvider (
token ,
MakeProviderFactory11 (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
d8 ,
d9 ,
d10 ,
d11 ,
f ,
) )
}
// eraseProviderFactory12 creates a function that takes a variadic number of untyped arguments and from a function of 12 strongly typed arguments and 12 dependencies
func eraseProviderFactory12 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 any , R any ] (
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
d8 Dependency [ T8 ] ,
d9 Dependency [ T9 ] ,
d10 Dependency [ T10 ] ,
d11 Dependency [ T11 ] ,
d12 Dependency [ T12 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ) IOE . IOEither [ error , R ] ) func ( params ... any ) IOE . IOEither [ error , any ] {
ft := eraseTuple ( T . Tupled12 ( f ) )
t1 := lookupAt [ T1 ] ( 0 , d1 )
t2 := lookupAt [ T2 ] ( 1 , d2 )
t3 := lookupAt [ T3 ] ( 2 , d3 )
t4 := lookupAt [ T4 ] ( 3 , d4 )
t5 := lookupAt [ T5 ] ( 4 , d5 )
t6 := lookupAt [ T6 ] ( 5 , d6 )
t7 := lookupAt [ T7 ] ( 6 , d7 )
t8 := lookupAt [ T8 ] ( 7 , d8 )
t9 := lookupAt [ T9 ] ( 8 , d9 )
t10 := lookupAt [ T10 ] ( 9 , d10 )
t11 := lookupAt [ T11 ] ( 10 , d11 )
t12 := lookupAt [ T12 ] ( 11 , d12 )
return func ( params ... any ) IOE . IOEither [ error , any ] {
return ft ( E . SequenceT12 (
t1 ( params ) ,
t2 ( params ) ,
t3 ( params ) ,
t4 ( params ) ,
t5 ( params ) ,
t6 ( params ) ,
t7 ( params ) ,
t8 ( params ) ,
t9 ( params ) ,
t10 ( params ) ,
t11 ( params ) ,
t12 ( params ) ,
) )
}
}
// MakeProviderFactory12 creates a [DIE.ProviderFactory] from a function with 12 arguments and 12 dependencies
func MakeProviderFactory12 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 any , R any ] (
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
d8 Dependency [ T8 ] ,
d9 Dependency [ T9 ] ,
d10 Dependency [ T10 ] ,
d11 Dependency [ T11 ] ,
d12 Dependency [ T12 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ) IOE . IOEither [ error , R ] ,
) DIE . ProviderFactory {
return DIE . MakeProviderFactory (
A . From [ DIE . Dependency ] (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
d8 ,
d9 ,
d10 ,
d11 ,
d12 ,
) ,
eraseProviderFactory12 (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
d8 ,
d9 ,
d10 ,
d11 ,
d12 ,
f ,
) ,
)
}
// MakeTokenWithDefault12 creates an [InjectionToken] with a default implementation with 12 dependencies
func MakeTokenWithDefault12 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 any , R any ] (
name string ,
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
d8 Dependency [ T8 ] ,
d9 Dependency [ T9 ] ,
d10 Dependency [ T10 ] ,
d11 Dependency [ T11 ] ,
d12 Dependency [ T12 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ) IOE . IOEither [ error , R ] ,
) InjectionToken [ R ] {
return MakeTokenWithDefault [ R ] ( name , MakeProviderFactory12 (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
d8 ,
d9 ,
d10 ,
d11 ,
d12 ,
f ,
) )
}
// MakeProvider12 creates a [DIE.Provider] for an [InjectionToken] from a function with 12 dependencies
func MakeProvider12 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 any , R any ] (
token InjectionToken [ R ] ,
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
d8 Dependency [ T8 ] ,
d9 Dependency [ T9 ] ,
d10 Dependency [ T10 ] ,
d11 Dependency [ T11 ] ,
d12 Dependency [ T12 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ) IOE . IOEither [ error , R ] ,
) DIE . Provider {
return DIE . MakeProvider (
token ,
MakeProviderFactory12 (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
d8 ,
d9 ,
d10 ,
d11 ,
d12 ,
f ,
) )
}
// eraseProviderFactory13 creates a function that takes a variadic number of untyped arguments and from a function of 13 strongly typed arguments and 13 dependencies
func eraseProviderFactory13 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 any , R any ] (
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
d8 Dependency [ T8 ] ,
d9 Dependency [ T9 ] ,
d10 Dependency [ T10 ] ,
d11 Dependency [ T11 ] ,
d12 Dependency [ T12 ] ,
d13 Dependency [ T13 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ) IOE . IOEither [ error , R ] ) func ( params ... any ) IOE . IOEither [ error , any ] {
ft := eraseTuple ( T . Tupled13 ( f ) )
t1 := lookupAt [ T1 ] ( 0 , d1 )
t2 := lookupAt [ T2 ] ( 1 , d2 )
t3 := lookupAt [ T3 ] ( 2 , d3 )
t4 := lookupAt [ T4 ] ( 3 , d4 )
t5 := lookupAt [ T5 ] ( 4 , d5 )
t6 := lookupAt [ T6 ] ( 5 , d6 )
t7 := lookupAt [ T7 ] ( 6 , d7 )
t8 := lookupAt [ T8 ] ( 7 , d8 )
t9 := lookupAt [ T9 ] ( 8 , d9 )
t10 := lookupAt [ T10 ] ( 9 , d10 )
t11 := lookupAt [ T11 ] ( 10 , d11 )
t12 := lookupAt [ T12 ] ( 11 , d12 )
t13 := lookupAt [ T13 ] ( 12 , d13 )
return func ( params ... any ) IOE . IOEither [ error , any ] {
return ft ( E . SequenceT13 (
t1 ( params ) ,
t2 ( params ) ,
t3 ( params ) ,
t4 ( params ) ,
t5 ( params ) ,
t6 ( params ) ,
t7 ( params ) ,
t8 ( params ) ,
t9 ( params ) ,
t10 ( params ) ,
t11 ( params ) ,
t12 ( params ) ,
t13 ( params ) ,
) )
}
}
// MakeProviderFactory13 creates a [DIE.ProviderFactory] from a function with 13 arguments and 13 dependencies
func MakeProviderFactory13 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 any , R any ] (
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
d8 Dependency [ T8 ] ,
d9 Dependency [ T9 ] ,
d10 Dependency [ T10 ] ,
d11 Dependency [ T11 ] ,
d12 Dependency [ T12 ] ,
d13 Dependency [ T13 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ) IOE . IOEither [ error , R ] ,
) DIE . ProviderFactory {
return DIE . MakeProviderFactory (
A . From [ DIE . Dependency ] (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
d8 ,
d9 ,
d10 ,
d11 ,
d12 ,
d13 ,
) ,
eraseProviderFactory13 (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
d8 ,
d9 ,
d10 ,
d11 ,
d12 ,
d13 ,
f ,
) ,
)
}
// MakeTokenWithDefault13 creates an [InjectionToken] with a default implementation with 13 dependencies
func MakeTokenWithDefault13 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 any , R any ] (
name string ,
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
d8 Dependency [ T8 ] ,
d9 Dependency [ T9 ] ,
d10 Dependency [ T10 ] ,
d11 Dependency [ T11 ] ,
d12 Dependency [ T12 ] ,
d13 Dependency [ T13 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ) IOE . IOEither [ error , R ] ,
) InjectionToken [ R ] {
return MakeTokenWithDefault [ R ] ( name , MakeProviderFactory13 (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
d8 ,
d9 ,
d10 ,
d11 ,
d12 ,
d13 ,
f ,
) )
}
// MakeProvider13 creates a [DIE.Provider] for an [InjectionToken] from a function with 13 dependencies
func MakeProvider13 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 any , R any ] (
token InjectionToken [ R ] ,
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
d8 Dependency [ T8 ] ,
d9 Dependency [ T9 ] ,
d10 Dependency [ T10 ] ,
d11 Dependency [ T11 ] ,
d12 Dependency [ T12 ] ,
d13 Dependency [ T13 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ) IOE . IOEither [ error , R ] ,
) DIE . Provider {
return DIE . MakeProvider (
token ,
MakeProviderFactory13 (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
d8 ,
d9 ,
d10 ,
d11 ,
d12 ,
d13 ,
f ,
) )
}
// eraseProviderFactory14 creates a function that takes a variadic number of untyped arguments and from a function of 14 strongly typed arguments and 14 dependencies
func eraseProviderFactory14 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 any , R any ] (
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
d8 Dependency [ T8 ] ,
d9 Dependency [ T9 ] ,
d10 Dependency [ T10 ] ,
d11 Dependency [ T11 ] ,
d12 Dependency [ T12 ] ,
d13 Dependency [ T13 ] ,
d14 Dependency [ T14 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ) IOE . IOEither [ error , R ] ) func ( params ... any ) IOE . IOEither [ error , any ] {
ft := eraseTuple ( T . Tupled14 ( f ) )
t1 := lookupAt [ T1 ] ( 0 , d1 )
t2 := lookupAt [ T2 ] ( 1 , d2 )
t3 := lookupAt [ T3 ] ( 2 , d3 )
t4 := lookupAt [ T4 ] ( 3 , d4 )
t5 := lookupAt [ T5 ] ( 4 , d5 )
t6 := lookupAt [ T6 ] ( 5 , d6 )
t7 := lookupAt [ T7 ] ( 6 , d7 )
t8 := lookupAt [ T8 ] ( 7 , d8 )
t9 := lookupAt [ T9 ] ( 8 , d9 )
t10 := lookupAt [ T10 ] ( 9 , d10 )
t11 := lookupAt [ T11 ] ( 10 , d11 )
t12 := lookupAt [ T12 ] ( 11 , d12 )
t13 := lookupAt [ T13 ] ( 12 , d13 )
t14 := lookupAt [ T14 ] ( 13 , d14 )
return func ( params ... any ) IOE . IOEither [ error , any ] {
return ft ( E . SequenceT14 (
t1 ( params ) ,
t2 ( params ) ,
t3 ( params ) ,
t4 ( params ) ,
t5 ( params ) ,
t6 ( params ) ,
t7 ( params ) ,
t8 ( params ) ,
t9 ( params ) ,
t10 ( params ) ,
t11 ( params ) ,
t12 ( params ) ,
t13 ( params ) ,
t14 ( params ) ,
) )
}
}
// MakeProviderFactory14 creates a [DIE.ProviderFactory] from a function with 14 arguments and 14 dependencies
func MakeProviderFactory14 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 any , R any ] (
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
d8 Dependency [ T8 ] ,
d9 Dependency [ T9 ] ,
d10 Dependency [ T10 ] ,
d11 Dependency [ T11 ] ,
d12 Dependency [ T12 ] ,
d13 Dependency [ T13 ] ,
d14 Dependency [ T14 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ) IOE . IOEither [ error , R ] ,
) DIE . ProviderFactory {
return DIE . MakeProviderFactory (
A . From [ DIE . Dependency ] (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
d8 ,
d9 ,
d10 ,
d11 ,
d12 ,
d13 ,
d14 ,
) ,
eraseProviderFactory14 (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
d8 ,
d9 ,
d10 ,
d11 ,
d12 ,
d13 ,
d14 ,
f ,
) ,
)
}
// MakeTokenWithDefault14 creates an [InjectionToken] with a default implementation with 14 dependencies
func MakeTokenWithDefault14 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 any , R any ] (
name string ,
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
d8 Dependency [ T8 ] ,
d9 Dependency [ T9 ] ,
d10 Dependency [ T10 ] ,
d11 Dependency [ T11 ] ,
d12 Dependency [ T12 ] ,
d13 Dependency [ T13 ] ,
d14 Dependency [ T14 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ) IOE . IOEither [ error , R ] ,
) InjectionToken [ R ] {
return MakeTokenWithDefault [ R ] ( name , MakeProviderFactory14 (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
d8 ,
d9 ,
d10 ,
d11 ,
d12 ,
d13 ,
d14 ,
f ,
) )
}
// MakeProvider14 creates a [DIE.Provider] for an [InjectionToken] from a function with 14 dependencies
func MakeProvider14 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 any , R any ] (
token InjectionToken [ R ] ,
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
d8 Dependency [ T8 ] ,
d9 Dependency [ T9 ] ,
d10 Dependency [ T10 ] ,
d11 Dependency [ T11 ] ,
d12 Dependency [ T12 ] ,
d13 Dependency [ T13 ] ,
d14 Dependency [ T14 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ) IOE . IOEither [ error , R ] ,
) DIE . Provider {
return DIE . MakeProvider (
token ,
MakeProviderFactory14 (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
d8 ,
d9 ,
d10 ,
d11 ,
d12 ,
d13 ,
d14 ,
f ,
) )
}
// eraseProviderFactory15 creates a function that takes a variadic number of untyped arguments and from a function of 15 strongly typed arguments and 15 dependencies
func eraseProviderFactory15 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 any , R any ] (
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
d8 Dependency [ T8 ] ,
d9 Dependency [ T9 ] ,
d10 Dependency [ T10 ] ,
d11 Dependency [ T11 ] ,
d12 Dependency [ T12 ] ,
d13 Dependency [ T13 ] ,
d14 Dependency [ T14 ] ,
d15 Dependency [ T15 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ) IOE . IOEither [ error , R ] ) func ( params ... any ) IOE . IOEither [ error , any ] {
ft := eraseTuple ( T . Tupled15 ( f ) )
t1 := lookupAt [ T1 ] ( 0 , d1 )
t2 := lookupAt [ T2 ] ( 1 , d2 )
t3 := lookupAt [ T3 ] ( 2 , d3 )
t4 := lookupAt [ T4 ] ( 3 , d4 )
t5 := lookupAt [ T5 ] ( 4 , d5 )
t6 := lookupAt [ T6 ] ( 5 , d6 )
t7 := lookupAt [ T7 ] ( 6 , d7 )
t8 := lookupAt [ T8 ] ( 7 , d8 )
t9 := lookupAt [ T9 ] ( 8 , d9 )
t10 := lookupAt [ T10 ] ( 9 , d10 )
t11 := lookupAt [ T11 ] ( 10 , d11 )
t12 := lookupAt [ T12 ] ( 11 , d12 )
t13 := lookupAt [ T13 ] ( 12 , d13 )
t14 := lookupAt [ T14 ] ( 13 , d14 )
t15 := lookupAt [ T15 ] ( 14 , d15 )
return func ( params ... any ) IOE . IOEither [ error , any ] {
return ft ( E . SequenceT15 (
t1 ( params ) ,
t2 ( params ) ,
t3 ( params ) ,
t4 ( params ) ,
t5 ( params ) ,
t6 ( params ) ,
t7 ( params ) ,
t8 ( params ) ,
t9 ( params ) ,
t10 ( params ) ,
t11 ( params ) ,
t12 ( params ) ,
t13 ( params ) ,
t14 ( params ) ,
t15 ( params ) ,
) )
}
}
// MakeProviderFactory15 creates a [DIE.ProviderFactory] from a function with 15 arguments and 15 dependencies
func MakeProviderFactory15 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 any , R any ] (
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
d8 Dependency [ T8 ] ,
d9 Dependency [ T9 ] ,
d10 Dependency [ T10 ] ,
d11 Dependency [ T11 ] ,
d12 Dependency [ T12 ] ,
d13 Dependency [ T13 ] ,
d14 Dependency [ T14 ] ,
d15 Dependency [ T15 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ) IOE . IOEither [ error , R ] ,
) DIE . ProviderFactory {
return DIE . MakeProviderFactory (
A . From [ DIE . Dependency ] (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
d8 ,
d9 ,
d10 ,
d11 ,
d12 ,
d13 ,
d14 ,
d15 ,
) ,
eraseProviderFactory15 (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
d8 ,
d9 ,
d10 ,
d11 ,
d12 ,
d13 ,
d14 ,
d15 ,
f ,
) ,
)
}
// MakeTokenWithDefault15 creates an [InjectionToken] with a default implementation with 15 dependencies
func MakeTokenWithDefault15 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 any , R any ] (
name string ,
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
d8 Dependency [ T8 ] ,
d9 Dependency [ T9 ] ,
d10 Dependency [ T10 ] ,
d11 Dependency [ T11 ] ,
d12 Dependency [ T12 ] ,
d13 Dependency [ T13 ] ,
d14 Dependency [ T14 ] ,
d15 Dependency [ T15 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ) IOE . IOEither [ error , R ] ,
) InjectionToken [ R ] {
return MakeTokenWithDefault [ R ] ( name , MakeProviderFactory15 (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
d8 ,
d9 ,
d10 ,
d11 ,
d12 ,
d13 ,
d14 ,
d15 ,
f ,
) )
}
// MakeProvider15 creates a [DIE.Provider] for an [InjectionToken] from a function with 15 dependencies
func MakeProvider15 [ T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 any , R any ] (
token InjectionToken [ R ] ,
d1 Dependency [ T1 ] ,
d2 Dependency [ T2 ] ,
d3 Dependency [ T3 ] ,
d4 Dependency [ T4 ] ,
d5 Dependency [ T5 ] ,
d6 Dependency [ T6 ] ,
d7 Dependency [ T7 ] ,
d8 Dependency [ T8 ] ,
d9 Dependency [ T9 ] ,
d10 Dependency [ T10 ] ,
d11 Dependency [ T11 ] ,
d12 Dependency [ T12 ] ,
d13 Dependency [ T13 ] ,
d14 Dependency [ T14 ] ,
d15 Dependency [ T15 ] ,
f func ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ) IOE . IOEither [ error , R ] ,
) DIE . Provider {
return DIE . MakeProvider (
token ,
MakeProviderFactory15 (
d1 ,
d2 ,
d3 ,
d4 ,
d5 ,
d6 ,
d7 ,
d8 ,
d9 ,
d10 ,
d11 ,
d12 ,
d13 ,
d14 ,
d15 ,
f ,
) )
}