| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Data.EDN.Class
Synopsis
- class ToEDN a where
- toEDN :: a -> TaggedValue
- toEDNv :: a -> Value
- toEDNtagged :: ToEDN a => Text -> Text -> a -> TaggedValue
- class FromEDN a where
- fromEDN :: (FromEDN a, Monad m) => TaggedValue -> m a
- withTagged :: Text -> Text -> (Value -> Parser a) -> TaggedValue -> Parser a
- withNoTag :: (Value -> Parser a) -> TaggedValue -> Parser a
- withNil :: Parser a -> Value -> Parser a
- withBoolean :: (Bool -> Parser a) -> Value -> Parser a
- withString :: (Text -> Parser a) -> Value -> Parser a
- withCharacter :: (Char -> Parser a) -> Value -> Parser a
- withSymbol :: (Text -> Text -> Parser a) -> Value -> Parser a
- withKeyword :: (Text -> Parser a) -> Value -> Parser a
- withTextual :: (Text -> Parser a) -> Value -> Parser a
- withInteger :: (Int -> Parser a) -> Value -> Parser a
- withIntegral :: Integral i => (i -> Parser a) -> Value -> Parser a
- withFloating :: (Double -> Parser a) -> Value -> Parser a
- withFractional :: Fractional f => (f -> Parser a) -> Value -> Parser a
- withList :: (EDNList -> Parser a) -> Value -> Parser a
- withVec :: (EDNVec -> Parser a) -> Value -> Parser a
- withMap :: (EDNMap -> Parser a) -> Value -> Parser a
- withSet :: (EDNSet -> Parser a) -> Value -> Parser a
- unexpected :: Value -> Label -> Parser a
- type Expected = [Label]
- type Label = String
- vecGet :: FromEDN a => Int -> EDNVec -> Parser a
- mapGetP :: Monad m => TaggedValue -> (TaggedValue -> m a) -> EDNMap -> m a
- mapGetKeyword :: FromEDN a => Text -> EDNMap -> Parser a
- mapGetString :: FromEDN a => Text -> EDNMap -> Parser a
- mapGetSymbol :: FromEDN a => Text -> EDNMap -> Parser a
- mapGetSymbolNS :: FromEDN a => Text -> Text -> EDNMap -> Parser a
Documentation
A type that can be converted to EDN AST.
Instances
| ToEDN Bool # | |
Defined in Data.EDN.Class | |
| ToEDN Char # | |
Defined in Data.EDN.Class | |
| ToEDN Double # | |
Defined in Data.EDN.Class | |
| ToEDN Int # | |
Defined in Data.EDN.Class | |
| ToEDN () # | |
Defined in Data.EDN.Class | |
| ToEDN Void # | |
Defined in Data.EDN.Class | |
| ToEDN Text # | |
Defined in Data.EDN.Class | |
| ToEDN Text # | |
Defined in Data.EDN.Class | |
| ToEDN UTCTime # | |
Defined in Data.EDN.Class | |
| ToEDN UUID # | |
Defined in Data.EDN.Class | |
| ToEDN Value # | |
Defined in Data.EDN.Class | |
| ToEDN TaggedValue # | |
Defined in Data.EDN.Class | |
| ToEDN a => ToEDN [a] # | |
Defined in Data.EDN.Class | |
| ToEDN a => ToEDN (Maybe a) # | |
Defined in Data.EDN.Class | |
| ToEDN a => ToEDN (Set a) # | |
Defined in Data.EDN.Class | |
| ToEDN a => ToEDN (Vector a) # | |
Defined in Data.EDN.Class | |
| (ToEDN a, ToEDN b) => ToEDN (a, b) # | |
Defined in Data.EDN.Class | |
| (ToEDN k, ToEDN v) => ToEDN (Map k v) # | |
Defined in Data.EDN.Class | |
| (ToEDN a, ToEDN b, ToEDN c) => ToEDN (a, b, c) # | |
Defined in Data.EDN.Class | |
| (ToEDN a, ToEDN b, ToEDN c, ToEDN d) => ToEDN (a, b, c, d) # | |
Defined in Data.EDN.Class | |
toEDNtagged :: ToEDN a => Text -> Text -> a -> TaggedValue #
A type that can be converted from EDN, with a possibility of failure.
When writing an instance, use unexpected or fail to make a
conversion fail, e.g. if an Map is missing a required key, or
the value is of the wrong type.
Instances
| FromEDN Bool # | |
| FromEDN Char # | |
| FromEDN Double # | |
| FromEDN Int # | |
| FromEDN () # | |
Defined in Data.EDN.Class | |
| FromEDN Void # | |
| FromEDN Text # | |
| FromEDN Text # | |
| FromEDN UTCTime # | |
| FromEDN UUID # | |
| FromEDN Value # | |
| FromEDN TaggedValue # | |
Defined in Data.EDN.Class | |
| FromEDN a => FromEDN [a] # | |
Defined in Data.EDN.Class | |
| FromEDN a => FromEDN (Maybe a) # | |
| (FromEDN a, Ord a) => FromEDN (Set a) # | |
| FromEDN a => FromEDN (Vector a) # | |
| (FromEDN a, FromEDN b) => FromEDN (a, b) # | |
Defined in Data.EDN.Class | |
| (FromEDN k, FromEDN v, Ord k) => FromEDN (Map k v) # | |
| (FromEDN a, FromEDN b, FromEDN c) => FromEDN (a, b, c) # | |
Defined in Data.EDN.Class | |
| (FromEDN a, FromEDN b, FromEDN c, FromEDN d) => FromEDN (a, b, c, d) # | |
Defined in Data.EDN.Class | |
fromEDN :: (FromEDN a, Monad m) => TaggedValue -> m a #
Apply appropriate parsers for a value to decode AST.
withTagged :: Text -> Text -> (Value -> Parser a) -> TaggedValue -> Parser a #
withFractional :: Fractional f => (f -> Parser a) -> Value -> Parser a #
unexpected :: Value -> Label -> Parser a #
Report an decoding error due to unexpected AST node given.
The Parser combines and reports alternatives expected.
Megaparsec-style collection of elements expected by combined parser alternatives.
Get ix-th element of EDNVec or fail with appropriate message.
Arguments
| :: Monad m | |
| => TaggedValue | Map key |
| -> (TaggedValue -> m a) | Parser to apply to a value |
| -> EDNMap | Map with EDN keys and values |
| -> m a |
Get a value from EDNMap and apply a parser to it