blob: 7ce0be26e4b12b630a591a0fd606e494fe1c9da4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
module Model.InitResult exposing
( InitResult(..)
, initResultDecoder
)
import Json.Decode as Decode exposing (Decoder)
import Model.Init exposing (Init, initDecoder)
type InitResult =
InitEmpty
| InitSuccess Init
| InitError String
initResultDecoder : Decoder InitResult
initResultDecoder = (Decode.field "tag" Decode.string) |> Decode.andThen initResultDecoderWithTag
initResultDecoderWithTag : String -> Decoder InitResult
initResultDecoderWithTag tag =
case tag of
"InitEmpty" ->
Decode.succeed InitEmpty
"InitSuccess" ->
Decode.map InitSuccess (Decode.field "contents" initDecoder)
"InitError" ->
Decode.map InitError (Decode.field "contents" Decode.string)
_ ->
Decode.fail <| "got " ++ tag ++ " for InitResult"
|