dimsuz
05/08/2023, 6:43 PM@optics
sealed class Person {
abstract val name: String
@optics
data class Lazy(override val name: String, val days: Int) : Person()
@optics
data class Working(override val name: String, val hours: Int) : Person()
}
And a function to set the name
fun setName(person: Person): Person {
return Person.lazy.name.set(
Person.working.name.set(person, newName),
newName
)
}
Is this the best solution, or can I use some nice trick here in setName
?simon.vergauwen
05/09/2023, 6:12 AMPerson.name.
would work.dimsuz
05/09/2023, 4:18 PM