reactormonk
05/24/2024, 12:43 PMT
in the inner object.
@Serializable
sealed interface Request<T> {
data object Get
data class Set(val value: T) : ReturnValue
}
dmitriy.novozhilov
05/24/2024, 12:47 PMinner
classes can catch type parameters of containing classes as each specific object will have it's own actual parametrization
Set
class in your example is not inner
, but nested classreactormonk
05/24/2024, 12:49 PMYoussef Shoaib [MOD]
05/24/2024, 1:02 PMRequest
? If so, the solution is simple:
@Serializable
sealed interface Request<out T> {
data object Get: Request<Nothing>
data class Set<out T>(val value: T) : ReturnValue, Request<T>
}
reactormonk
05/24/2024, 1:02 PMYoussef Shoaib [MOD]
05/24/2024, 1:05 PMinner class
is a very specific OOP concept. The closest general Kotlin feature would be something like context(...) class
(which is getting removed lol). What you likely want is something akin to this:
@Serializable
sealed interface Request<T> {
data object Get
data class Set<T>(val request: Request<T>, val value: T) : ReturnValue
}
But as you can see, this is useless since rn there's no implementors of Request