Safe Haskell | None |
---|---|
Language | Haskell2010 |
Contains TOML-specific combinators for converting between TOML and user data types.
- bijectionMaker :: forall a t. Typeable a => (forall f. Value f -> Maybe a) -> (a -> Value t) -> Key -> BiToml a
- dimapNum :: forall n r w. (Integral n, Functor r, Functor w) => Bi r w Integer -> Bi r w n
- mdimap :: (Monad r, Monad w, MonadError DecodeException r) => (c -> d) -> (a -> Maybe b) -> Bijection r w d a -> Bijection r w c b
- bool :: Key -> BiToml Bool
- int :: Key -> BiToml Int
- integer :: Key -> BiToml Integer
- double :: Key -> BiToml Double
- text :: Key -> BiToml Text
- arrayOf :: forall a. Typeable a => Prism AnyValue a -> Key -> BiToml [a]
- maybeT :: forall a. (Key -> BiToml a) -> Key -> BiToml (Maybe a)
- table :: forall a. BiToml a -> Key -> BiToml a
Converters
:: Typeable a | |
=> (forall f. Value f -> Maybe a) | How to convert from |
-> (a -> Value t) | Convert |
-> Key | Key of the value |
-> BiToml a |
General function to create bidirectional converters for values.
:: (Monad r, Monad w, MonadError DecodeException r) | |
=> (c -> d) | Convert from safe to unsafe value |
-> (a -> Maybe b) | Parser for more type safe value |
-> Bijection r w d a | Source |
-> Bijection r w c b |
Almost same as dimap
. Useful when you want to have fields like this
inside your configuration:
data GhcVer = Ghc7103 | Ghc802 | Ghc822 | Ghc842 showGhcVer :: GhcVer -> Text parseGhcVer :: Text -> Maybe GhcVer
When you specify couple of functions of the following types:
show :: a -> Text parse :: Text -> Maybe a
they should satisfy property parse . show == Just
if you want to use your
converter for pretty-printing.
Toml parsers
arrayOf :: forall a. Typeable a => Prism AnyValue a -> Key -> BiToml [a] Source #
Parser for array of values. Takes converter for single array element and returns list of values.