Olivier Patry
05/17/2025, 7:20 AMclockNow: () -> Instant
parameter.
To inject it, I provide a single<() -> Instant>
.
It works but I get a warning: Type is not declared in Koin modules: () -> Instant
val myModule = module {
single<() -> Instant> { Clock.System::now }
singleOf(::TaskRepository)
}
Is it expected? Can I do better?
(to declutter, I introduced a type alias typealias NowProvider = () -> Instant
but it doesn't change anything)Pablo Otero Castro
05/17/2025, 10:34 PMfun interface
instead of a plain lambda.
fun interface NowProvider {
fun now(): Instant
}
val myModule = module {
single<NowProvider> { NowProvider { Clock.System.now() } }
single<NowProvider> { NowProvider(Clock.System::now) }
singleOf(::TaskRepository)
}
Olivier Patry
05/18/2025, 8:12 AM