Skip to content

Instantly share code, notes, and snippets.

@shangeethsivan
Created August 4, 2024 09:18
Show Gist options
  • Save shangeethsivan/d9dd52d850b60c67b06c3f32827d9b84 to your computer and use it in GitHub Desktop.
Save shangeethsivan/d9dd52d850b60c67b06c3f32827d9b84 to your computer and use it in GitHub Desktop.
Operator Overloading in Kotlin
fun main() {
val state = State.DataLoaded
val newState = state + UserInputs.OnRetryClick
println(newState)
}
sealed class State{
abstract operator fun plus(userInputs: UserInputs): State
object DataLoaded : State() {
override fun plus(userInputs: UserInputs): State {
return when (userInputs) {
UserInputs.OnRetryClick -> {
LoadingNewData
}
}
}
}
object LoadingNewData: State(){
override fun plus(userInputs: UserInputs): State {
TODO("Not yet implemented")
}
}
}
sealed class UserInputs{
object OnRetryClick: UserInputs()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment