Skip to content

Commit

Permalink
Improving design
Browse files Browse the repository at this point in the history
  • Loading branch information
ubiratansoares committed Jul 23, 2019
1 parent b7963e1 commit 20b1772
Showing 1 changed file with 14 additions and 3 deletions.
Expand Up @@ -4,11 +4,22 @@ sealed class StateTransition<out T> {

interface Parameters

class Unparametrized<T>(val task: suspend () -> T) : StateTransition<T>()
class Parametrized<T>(val task: suspend (Parameters) -> T, val parameters: Parameters) : StateTransition<T>()
class Unparametrized<T> internal constructor(
val task: suspend () -> T
) : StateTransition<T>()

class Parametrized<T> internal constructor(
val task: suspend (Parameters) -> T,
val parameters: Parameters
) : StateTransition<T>()

companion object {

operator fun <T> invoke(task: suspend () -> T) = Unparametrized(task)
operator fun <T> invoke(task: suspend (Parameters) -> T, data: Parameters) = Parametrized(task, data)

operator fun <T> invoke(
task: suspend (Parameters) -> T,
data: Parameters
) = Parametrized(task, data)
}
}

0 comments on commit 20b1772

Please sign in to comment.