Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- enumJsonFormat :: forall e a. (Show a, Ord a, Generic a, ConNames (Rep a), Enum' (Rep a)) => String -> JsonFormat e a
- enumMapJsonFormat :: Show a => (Text -> Maybe a) -> (a -> Maybe Text) -> String -> JsonFormat e a
Documentation
enumJsonFormat :: forall e a. (Show a, Ord a, Generic a, ConNames (Rep a), Enum' (Rep a)) => String -> JsonFormat e a Source #
For some type a
which represents an enumeration (i.e. all nullary constructors) generate a JsonFormat
which maps that type to strings in JSON.
Each constructor will be mapped to a string with the same value as its name with some prefix removed.
For example, given:
data MyEnum = MyEnumFoo | MyEnumBar myEnumFormat :: JsonFormat e MyEnum myEnumFormat = enumJsonFormat "MyEnum"
Then:
toJsonWithFormat myEnumFormat MyEnumFoo == Aeson.String "Foo"
enumMapJsonFormat :: Show a => (Text -> Maybe a) -> (a -> Maybe Text) -> String -> JsonFormat e a Source #
For some type a
which bidirectional mapping functions can be provided, produce a JsonFormat
which maps to JSON strings.