Safe Haskell | None |
---|---|
Language | Haskell2010 |
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 => TaggedValue -> Either String 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 :: TaggedValue -> (TaggedValue -> Parser a) -> EDNMap -> Parser 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 Source # | |
ToEDN Char Source # | |
ToEDN Double Source # | |
ToEDN Int Source # | |
ToEDN () Source # | |
Defined in Data.EDN.Class | |
ToEDN Void Source # | |
ToEDN Text Source # | |
ToEDN Text Source # | |
ToEDN UTCTime Source # | |
ToEDN UUID Source # | |
ToEDN Value Source # | |
ToEDN TaggedValue Source # | |
Defined in Data.EDN.Class toEDN :: TaggedValue -> TaggedValue Source # toEDNv :: TaggedValue -> Value Source # | |
ToEDN a => ToEDN [a] Source # | |
Defined in Data.EDN.Class | |
ToEDN a => ToEDN (Maybe a) Source # | |
ToEDN a => ToEDN (Set a) Source # | |
ToEDN a => ToEDN (Vector a) Source # | |
(ToEDN a, ToEDN b) => ToEDN (a, b) Source # | |
Defined in Data.EDN.Class | |
(ToEDN k, ToEDN v) => ToEDN (Map k v) Source # | |
(ToEDN a, ToEDN b, ToEDN c) => ToEDN (a, b, c) Source # | |
Defined in Data.EDN.Class | |
(ToEDN a, ToEDN b, ToEDN c, ToEDN d) => ToEDN (a, b, c, d) Source # | |
Defined in Data.EDN.Class |
toEDNtagged :: ToEDN a => Text -> Text -> a -> TaggedValue Source #
class FromEDN a where Source #
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 Source # | |
FromEDN Char Source # | |
FromEDN Double Source # | |
FromEDN Int Source # | |
FromEDN () Source # | |
FromEDN Void Source # | |
FromEDN Text Source # | |
FromEDN Text Source # | |
FromEDN UTCTime Source # | |
FromEDN UUID Source # | |
FromEDN Value Source # | |
FromEDN TaggedValue Source # | |
Defined in Data.EDN.Class parseEDN :: TaggedValue -> Parser TaggedValue Source # | |
FromEDN a => FromEDN [a] Source # | |
FromEDN a => FromEDN (Maybe a) Source # | |
(FromEDN a, Ord a) => FromEDN (Set a) Source # | |
FromEDN a => FromEDN (Vector a) Source # | |
(FromEDN a, FromEDN b) => FromEDN (a, b) Source # | |
(FromEDN k, FromEDN v, Ord k) => FromEDN (Map k v) Source # | |
(FromEDN a, FromEDN b, FromEDN c) => FromEDN (a, b, c) Source # | |
(FromEDN a, FromEDN b, FromEDN c, FromEDN d) => FromEDN (a, b, c, d) Source # | |
fromEDN :: FromEDN a => TaggedValue -> Either String a Source #
Apply appropriate parsers for a value to decode AST.
withTagged :: Text -> Text -> (Value -> Parser a) -> TaggedValue -> Parser a Source #
withFractional :: Fractional f => (f -> Parser a) -> Value -> Parser a Source #
unexpected :: Value -> Label -> Parser a Source #
Report an decoding error due to unexpected AST node given.
The Parser
combines and reports alternatives expected.
type Expected = [Label] Source #
Megaparsec-style collection of elements expected by combined parser alternatives.
Get ix-th element of EDNVec
or fail with appropriate message.
:: TaggedValue | Map key |
-> (TaggedValue -> Parser a) | Parser to apply to a value |
-> EDNMap | Map with EDN keys and values |
-> Parser a |
Get a value from EDNMap
and apply a parser to it