| summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/popup/src/Struct/Model.elm')
| -rw-r--r-- | src/popup/src/Struct/Model.elm | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/src/popup/src/Struct/Model.elm b/src/popup/src/Struct/Model.elm new file mode 100644 index 0000000..6742e96 --- /dev/null +++ b/src/popup/src/Struct/Model.elm @@ -0,0 +1,66 @@ +module Struct.Model exposing + ( + Type, + new, + invalidate, + reset, + clear_error + ) + +-- Elm ------------------------------------------------------------------------- +import Array + +-- Extension ------------------------------------------------------------------- +import Struct.Flags +import Struct.Error +import Struct.Player + +-------------------------------------------------------------------------------- +-- TYPES ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- +type alias Type = + { + flags: Struct.Flags.Type, + error: (Maybe Struct.Error.Type), + players: (Array.Array Struct.Player.Type), + query_index: Int, + notify: Bool + } + +-------------------------------------------------------------------------------- +-- LOCAL ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- + +-------------------------------------------------------------------------------- +-- EXPORTED -------------------------------------------------------------------- +-------------------------------------------------------------------------------- +new : Struct.Flags.Type -> Type +new flags = + { + flags = flags, + error = Nothing, + players = + (Array.push + (Struct.Player.default) + (Array.fromList (Struct.Flags.get_players flags)) + ), + query_index = -1, + notify = False + } + +reset : Type -> Type +reset model = + {model | + error = Nothing, + notify = False, + query_index = -1 + } + +invalidate : Struct.Error.Type -> Type -> Type +invalidate err model = + {model | + error = (Just err) + } + +clear_error : Type -> Type +clear_error model = {model | error = Nothing} |


