module SeqSim.Update exposing (update) import SeqSim.Model exposing (Model, Msg(..)) update : Msg -> Model -> (Model, Cmd Msg) update msg m = case msg of AddProgram -> ({ m | programs = m.programs ++ [""] }, Cmd.none) ChangeProgram i ns -> ( { m | programs = List.indexedMap (\j n -> if i == j then ns else n) m.programs , selected = Nothing } , Cmd.none ) DeleteProgram i -> ( { m | programs = List.take i m.programs ++ List.drop (i+1) m.programs , selected = Nothing } , Cmd.none ) ChangeVariables s -> ( { m | variables = s, selected = Nothing }, Cmd.none ) SelectOutcome i -> ( { m | selected = Just i }, Cmd.none )