CLOVIS
09/09/2020, 3:53 PMwhere
, and that sounds so much perfect for combining typeclasses
https://kotlinlang.org/docs/reference/generics.html#upper-boundsbloder
09/09/2020, 4:26 PMsuspend fun <T, R, M> T.fetchMapping(): M where T : Repository<R>, T : Mapper<R, M> = load().mapToValue()
class FetchUserUseCase(
private val repository: Repository<User>,
private val mapper: Mapper<UserPayload, User>
) : Repository<User> by repository, Mapper<UserPayload, User> by mapper
...
fetchUserUseCase.fetchMapping()
pakoito
09/09/2020, 4:37 PMpakoito
09/09/2020, 4:37 PMCLOVIS
09/09/2020, 6:47 PM