| 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 => 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 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 Methods 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.
Arguments
| :: 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