| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Elm.Print.Decoder
Contents
Description
Pretty-printing functions for Decoder.elm module.
Also contains decoders for common types which go to the ElmStreet.elm module.
Synopsis
- prettyShowDecoder :: ElmDefinition -> Text
- decodeEnum :: Text
- decodeChar :: Text
- decodeEither :: Text
- decodePair :: Text
- decodeTriple :: Text
- decodeNonEmpty :: Text
Documentation
prettyShowDecoder :: ElmDefinition -> Text Source #
Sum Types:
Haskell type
type User
= Foo
| Bar String Int
Encoded JSON on Haskell side
[ { "tag" : Foo
}
, { "tag" : Bar
, "contents" : ["asd", 42, "qwerty"]
}
]
Elm decoder
userDecoder : Decoder User
userDecoder =
let decide : String -> Decoder User
decide x = case x of
"Foo" -> D.succeed Foo
"Bar" -> D.field "contents" <| D.map2 Bar (D.index 0 D.string) (D.index 1 D.int)
x -> D.fail <| "There is no constructor for User type:" ++ x
in D.andThen decide (D.field "tag" D.string)
Standard missing decoders
decodeEnum :: Text Source #
JSON decoder Elm help function for Enum types.
decodeChar :: Text Source #
JSON decoder Elm help function for Chars.
decodeEither :: Text Source #
JSON decoder Elm help function for Eithers.
decodePair :: Text Source #
JSON decoder Elm help function for 2-tuples.
decodeTriple :: Text Source #
JSON decoder Elm help function for 3-tuples.
decodeNonEmpty :: Text Source #
JSON decoder Elm help function for List.NonEmpty.