utility fo model -> Cmd msg
model -> Platform.Cmd.Cmd msg
function of generate Cmd msg
from model
set of getter (big -> small) and setter (small -> big -> big)
none : Transition model msg
create 'Do nothing' Transition
prop : Get big small -> Set big small -> Prop big small
construct Prop from getter and setter
type alias Model =
{ name : String
}
name_ = Transition.prop .name (\v m -> { m | name = v })
exec : Transition model msg -> model -> ( model, Platform.Cmd.Cmd msg )
execute Transition
model |> Transition.exec Transition.none
-- ( model, Cmd.none )
update : Prop big small -> (small -> ( small, msg )) -> big -> ( big, msg )
update small that described by Prop
type alias Model =
{ sub : String
}
sub_ = Transition.prop .sub (\v m -> { m | sub = v })
updateSub model = ( model ++ ", world", Transition.none )
{ sub = "hello" } |> Transition.update sub_ updateSub
-- ( { sub = "hello, world" }, Transition msg )
batch : List (Transition model msg) -> model -> Platform.Cmd.Cmd msg
batch Transition
[ Transition.none
, Transition.none
] |> Transition.batch
map : (msg -> super) -> ( model, Transition m msg ) -> ( model, Transition m super )
map ( model, Transition ) tuple
type Msg
= Sub SubMsg
updateSub : model -> ( model, Transition model SubMsg )
model |> updateSub |> Transition.map Sub
-- ( model, Transition model Msg )
compose : (a -> model) -> ( a, Transition m msg ) -> ( model, Transition m msg )
compose ( model, Transition ) tuples
type alias Model =
{ sub : SubModel
}
Transition.compose
Model
( subModel, Transition.none )
compose2 : (a -> b -> model) -> ( a, Transition m msg ) -> ( b, Transition m msg ) -> ( model, Transition m msg )
compose ( model, Transition ) tuples
type alias Model =
{ sub : SubModel
, other : OtherModel
}
Transition.compose
Model
( subModel, Transition.none )
( otherModel, Transition.none )
compose3 : (a -> b -> c -> model) -> ( a, Transition m msg ) -> ( b, Transition m msg ) -> ( c, Transition m msg ) -> ( model, Transition m msg )
compose with 3 args
compose4 : (a -> b -> c -> d -> model) -> ( a, Transition m msg ) -> ( b, Transition m msg ) -> ( c, Transition m msg ) -> ( d, Transition m msg ) -> ( model, Transition m msg )
compose with 4 args
compose5 : (a -> b -> c -> d -> e -> model) -> ( a, Transition m msg ) -> ( b, Transition m msg ) -> ( c, Transition m msg ) -> ( d, Transition m msg ) -> ( e, Transition m msg ) -> ( model, Transition m msg )
compose with 5 args
compose6 : (a -> b -> c -> d -> e -> f -> model) -> ( a, Transition m msg ) -> ( b, Transition m msg ) -> ( c, Transition m msg ) -> ( d, Transition m msg ) -> ( e, Transition m msg ) -> ( f, Transition m msg ) -> ( model, Transition m msg )
compose with 6 args
compose7 : (a -> b -> c -> d -> e -> f -> g -> model) -> ( a, Transition m msg ) -> ( b, Transition m msg ) -> ( c, Transition m msg ) -> ( d, Transition m msg ) -> ( e, Transition m msg ) -> ( f, Transition m msg ) -> ( g, Transition m msg ) -> ( model, Transition m msg )
compose with 7 args
compose8 : (a -> b -> c -> d -> e -> f -> g -> h -> model) -> ( a, Transition m msg ) -> ( b, Transition m msg ) -> ( c, Transition m msg ) -> ( d, Transition m msg ) -> ( e, Transition m msg ) -> ( f, Transition m msg ) -> ( g, Transition m msg ) -> ( h, Transition m msg ) -> ( model, Transition m msg )
compose with 8 args