| summaryrefslogtreecommitdiff |
diff options
| author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2018-09-29 13:30:15 +0200 |
|---|---|---|
| committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2018-09-29 13:30:15 +0200 |
| commit | 80c3b7947eb0bd240d4c1f94808cb64d2fbfbf3d (patch) | |
| tree | 6b4168efd6165f0f23c70cd054416b270a39042a /src/shared/Struct/Flags.elm | |
| parent | aa908fcf7072c0e27d242ecf7014174f9de16965 (diff) | |
...
Diffstat (limited to 'src/shared/Struct/Flags.elm')
| -rw-r--r-- | src/shared/Struct/Flags.elm | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/src/shared/Struct/Flags.elm b/src/shared/Struct/Flags.elm new file mode 100644 index 0000000..29707a9 --- /dev/null +++ b/src/shared/Struct/Flags.elm @@ -0,0 +1,57 @@ +module Struct.Flags exposing + ( + Type, + get_frequency, + get_players, + decoder, + encode + ) + +-- Elm ------------------------------------------------------------------------- +import Json.Decode +import Json.Encode + +-- Extension ------------------------------------------------------------------- +import Struct.Player + +-------------------------------------------------------------------------------- +-- TYPES ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- +type alias Type = + { + frequency : Int, + players : (List Struct.Player.Type) + } + +-------------------------------------------------------------------------------- +-- LOCAL ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- + +-------------------------------------------------------------------------------- +-- EXPORTED -------------------------------------------------------------------- +-------------------------------------------------------------------------------- +get_frequency : Type -> Int +get_frequency flags = flags.frequency + +get_players : Type -> (List Struct.Player.Type) +get_players flags = flags.players + +decoder : (Json.Decode.Decoder Type) +decoder = + (Json.Decode.map2 + Type + (Json.Decode.field "frequency" (Json.Decode.int)) + (Json.Decode.field "players" (Json.Decode.list (Struct.Player.decoder))) + ) + +encode : Type -> Json.Encode.Value +encode flags = + (Json.Encode.object + [ + ("frequency", (Json.Encode.int flags.frequency)), + ( + "players", + (Json.Encode.list (List.map (Struct.Player.encode) flags.players)) + ) + ] + ) |


