Safe Haskell | None |
---|---|
Language | Haskell98 |
Synopsis
- data Value
- data Tagged a
- = NoTag !a
- | Tagged !a !ByteString !ByteString
- type TaggedValue = Tagged Value
- type EDNList = [TaggedValue]
- type EDNVec = Vector TaggedValue
- type EDNSet = Set TaggedValue
- type EDNMap = Map Value TaggedValue
- type Pair = (Value, TaggedValue)
- setTag :: ByteString -> ByteString -> Tagged a -> Tagged a
- getTag :: TaggedValue -> (ByteString, ByteString)
- stripTag :: Tagged a -> a
- tag :: ByteString -> ByteString -> a -> Tagged a
- notag :: a -> Tagged a
- nil :: TaggedValue
- bool :: Bool -> TaggedValue
- true :: TaggedValue
- false :: TaggedValue
- char :: Char -> TaggedValue
- string :: Text -> TaggedValue
- symbol :: ByteString -> TaggedValue
- symbolNS :: ByteString -> ByteString -> TaggedValue
- keyword :: ByteString -> TaggedValue
- integer :: Integer -> TaggedValue
- floating :: Double -> TaggedValue
- makeList :: [TaggedValue] -> Value
- makeVec :: [TaggedValue] -> Value
- makeSet :: [TaggedValue] -> Value
- makeMap :: [Pair] -> Value
Types
A "raw" EDN value represented as a Haskell value.
Nil | |
Boolean !Bool | |
String !Text | |
Character !Char | |
Symbol !ByteString !ByteString | |
Keyword !ByteString | |
Integer !Integer | |
Floating !Double | |
List EDNList | |
Vec !EDNVec | |
Map !EDNMap | |
Set !EDNSet |
Instances
Eq Value Source # | |
Ord Value Source # | |
Show Value Source # | |
IsString Value Source # | Strings starting with ":" will become keywords. |
Defined in Data.EDN.Types fromString :: String -> Value # | |
NFData Value Source # | |
Defined in Data.EDN.Types | |
FromEDN Value Source # | |
FromEDN TaggedValue Source # | |
Defined in Data.EDN.Types.Class parseEDN :: TaggedValue -> Parser TaggedValue Source # | |
ToEDN Value Source # | |
ToEDN TaggedValue Source # | |
Defined in Data.EDN.Types.Class toEDN :: TaggedValue -> TaggedValue Source # toEDNv :: TaggedValue -> Value Source # | |
IsString (Tagged Value) Source # | Strings will become an tagless EDN strings. |
Defined in Data.EDN.Types fromString :: String -> Tagged Value # |
Abstract namespaced tag.
NoTag !a | |
Tagged !a !ByteString !ByteString |
Instances
Functor Tagged Source # | |
FromEDN TaggedValue Source # | |
Defined in Data.EDN.Types.Class parseEDN :: TaggedValue -> Parser TaggedValue Source # | |
ToEDN TaggedValue Source # | |
Defined in Data.EDN.Types.Class toEDN :: TaggedValue -> TaggedValue Source # toEDNv :: TaggedValue -> Value Source # | |
Eq a => Eq (Tagged a) Source # | |
Ord a => Ord (Tagged a) Source # | |
Defined in Data.EDN.Types | |
Show a => Show (Tagged a) Source # | |
IsString (Tagged Value) Source # | Strings will become an tagless EDN strings. |
Defined in Data.EDN.Types fromString :: String -> Tagged Value # | |
NFData a => NFData (Tagged a) Source # | |
Defined in Data.EDN.Types | |
FromEDN a => FromEDN (Tagged a) Source # | |
ToEDN a => ToEDN (Tagged a) Source # | |
type TaggedValue = Tagged Value Source #
Internal containers
= [TaggedValue] | An EDN list (head:tail container). |
= Vector TaggedValue | An EDN vector (position-indexed container) of EDN values. |
= Set TaggedValue | An EDN set (unordered container of unique values). |
= Map Value TaggedValue | An EDN map (key/value container). Keys are untagged and values are tagged. |
type Pair = (Value, TaggedValue) Source #
A key/value pair for a EDN Map
Tag manipulation
setTag :: ByteString -> ByteString -> Tagged a -> Tagged a Source #
Replace a tag on a Tagged
value.
getTag :: TaggedValue -> (ByteString, ByteString) Source #
Extract namespace and tag from a tagged container. Will be a pair of empty
for tagless containers.
Constructors
tag :: ByteString -> ByteString -> a -> Tagged a Source #
Attach a namespaced tag to a value.
Trivial values
nil :: TaggedValue Source #
Basic EDN nil.
bool :: Bool -> TaggedValue Source #
Basic EDN boolean.
true :: TaggedValue Source #
Const EDN True.
false :: TaggedValue Source #
Const EDN False.
char :: Char -> TaggedValue Source #
Basic EDN character.
string :: Text -> TaggedValue Source #
Basic EDN string.
symbol :: ByteString -> TaggedValue Source #
"Bare" symbol.
symbolNS :: ByteString -> ByteString -> TaggedValue Source #
A namespaced symbol.
keyword :: ByteString -> TaggedValue Source #
Basic EDN keyword.
integer :: Integer -> TaggedValue Source #
Basic EDN integer.
floating :: Double -> TaggedValue Source #
Basic EDN fp number.
Containers
makeList :: [TaggedValue] -> Value Source #
makeVec :: [TaggedValue] -> Value Source #
Create an EDN Vector
from a TaggedValue
list.
makeSet :: [TaggedValue] -> Value Source #
Create an EDN Set
from a TaggedValue
list.