summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2018-09-29 13:30:15 +0200
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2018-09-29 13:30:15 +0200
commit80c3b7947eb0bd240d4c1f94808cb64d2fbfbf3d (patch)
tree6b4168efd6165f0f23c70cd054416b270a39042a /src/shared/Struct/Flags.elm
parentaa908fcf7072c0e27d242ecf7014174f9de16965 (diff)
...
Diffstat (limited to 'src/shared/Struct/Flags.elm')
-rw-r--r--src/shared/Struct/Flags.elm57
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))
+ )
+ ]
+ )