| Safe Haskell | None |
|---|---|
| Language | Haskell98 |
Data.EDN.Types
- 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.
Constructors
| 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. |
| NFData Value Source # | |
| FromEDN Value Source # | |
| FromEDN TaggedValue Source # | |
| ToEDN Value Source # | |
| ToEDN TaggedValue Source # | |
| IsString (Tagged Value) Source # | Strings will become an tagless EDN strings. |
Abstract namespaced tag.
Constructors
| NoTag !a | |
| Tagged !a !ByteString !ByteString |
Instances
| Functor Tagged Source # | |
| FromEDN TaggedValue Source # | |
| ToEDN TaggedValue Source # | |
| Eq a => Eq (Tagged a) Source # | |
| Ord a => Ord (Tagged a) Source # | |
| Show a => Show (Tagged a) Source # | |
| IsString (Tagged Value) Source # | Strings will become an tagless EDN strings. |
| NFData a => NFData (Tagged a) Source # | |
| FromEDN a => FromEDN (Tagged a) Source # | |
| ToEDN a => ToEDN (Tagged a) Source # | |
type TaggedValue = Tagged Value Source #
Internal containers
Arguments
| = [TaggedValue] | An EDN list (head:tail container). |
Arguments
| = Vector TaggedValue | An EDN vector (position-indexed container) of EDN values. |
Arguments
| = Set TaggedValue | An EDN set (unordered container of unique values). |
Arguments
| = 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.