| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Data.Aeson.Encoding.Internal
Synopsis
- newtype Encoding' tag = Encoding {}
- type Encoding = Encoding' Value
- encodingToLazyByteString :: Encoding' a -> ByteString
- unsafeToEncoding :: Builder -> Encoding' a
- retagEncoding :: Encoding' a -> Encoding' b
- data Series
- pairs :: Series -> Encoding
- pair :: Key -> Encoding -> Series
- pairStr :: String -> Encoding -> Series
- unsafePairSBS :: ShortByteString -> Encoding -> Series
- pair' :: Encoding' Key -> Encoding -> Series
- nullEncoding :: Encoding' a -> Bool
- emptyArray_ :: Encoding
- emptyObject_ :: Encoding
- wrapObject :: Encoding' a -> Encoding
- wrapArray :: Encoding' a -> Encoding
- null_ :: Encoding
- bool :: Bool -> Encoding
- key :: Key -> Encoding' a
- text :: Text -> Encoding' a
- lazyText :: Text -> Encoding' a
- shortText :: ShortText -> Encoding' a
- string :: String -> Encoding' a
- list :: (a -> Encoding) -> [a] -> Encoding
- dict :: (k -> Encoding' Key) -> (v -> Encoding) -> (forall a. (k -> v -> a -> a) -> a -> m -> a) -> m -> Encoding
- tuple :: Encoding' InArray -> Encoding
- (>*<) :: Encoding' a -> Encoding' b -> Encoding' InArray
- data InArray
- empty :: Encoding' a
- (><) :: Encoding' a -> Encoding' a -> Encoding' a
- econcat :: [Encoding' a] -> Encoding' a
- int8 :: Int8 -> Encoding
- int16 :: Int16 -> Encoding
- int32 :: Int32 -> Encoding
- int64 :: Int64 -> Encoding
- int :: Int -> Encoding
- word8 :: Word8 -> Encoding
- word16 :: Word16 -> Encoding
- word32 :: Word32 -> Encoding
- word64 :: Word64 -> Encoding
- word :: Word -> Encoding
- integer :: Integer -> Encoding
- float :: Float -> Encoding
- double :: Double -> Encoding
- scientific :: Scientific -> Encoding
- int8Text :: Int8 -> Encoding' a
- int16Text :: Int16 -> Encoding' a
- int32Text :: Int32 -> Encoding' a
- int64Text :: Int64 -> Encoding' a
- intText :: Int -> Encoding' a
- word8Text :: Word8 -> Encoding' a
- word16Text :: Word16 -> Encoding' a
- word32Text :: Word32 -> Encoding' a
- word64Text :: Word64 -> Encoding' a
- wordText :: Word -> Encoding' a
- integerText :: Integer -> Encoding' a
- floatText :: Float -> Encoding' a
- doubleText :: Double -> Encoding' a
- scientificText :: Scientific -> Encoding' a
- day :: Day -> Encoding' a
- month :: Month -> Encoding' a
- quarter :: Quarter -> Encoding' a
- localTime :: LocalTime -> Encoding' a
- utcTime :: UTCTime -> Encoding' a
- timeOfDay :: TimeOfDay -> Encoding' a
- zonedTime :: ZonedTime -> Encoding' a
- value :: Value -> Encoding
- comma :: Encoding' a
- colon :: Encoding' a
- openBracket :: Encoding' a
- closeBracket :: Encoding' a
- openCurly :: Encoding' a
- closeCurly :: Encoding' a
Encoding
newtype Encoding' tag Source #
An encoding of a JSON value.
tag represents which kind of JSON the Encoding is encoding to,
we reuse Text and Series as tags here.
Instances
Instances details
Instance details
Defined in Data.Aeson.Encoding.Internal
Methods
fromString :: String -> Encoding' a #
Instance details
Defined in Data.Aeson.Encoding.Internal
unsafeToEncoding :: Builder -> Encoding' a Source #
Make Encoding from Builder.
Use with care! You have to make sure that the passed Builder is a valid JSON Encoding!
retagEncoding :: Encoding' a -> Encoding' b Source #
A series of values that, when encoded, should be separated by
commas. Since 0.11.0.0, the .= operator is overloaded to create
either (Text, Value) or Series . You can use Series when
encoding directly to a bytestring builder as in the following
example:
toEncoding (Person name age) = pairs ("name" .= name <> "age" .= age)Instances
Instances details
unsafePairSBS :: ShortByteString -> Encoding -> Series Source #
Predicates
nullEncoding :: Encoding' a -> Bool Source #
Encoding constructors
wrapObject :: Encoding' a -> Encoding Source #
Arguments
value encoding
foldrWithKey - indexed fold
container
Encode as JSON object
tuple :: Encoding' InArray -> Encoding Source #
Encode as a tuple.
@ toEncoding (X a b c) = tuple $ toEncoding a >*< toEncoding b >*< toEncoding c
Decimal numbers
double :: Double -> Encoding Source #
>>>double 42"42.0"
>>>double (0/0)"null"
>>>double (1/0)"\"+inf\""
>>>double (-23/0)"\"-inf\""
scientific :: Scientific -> Encoding Source #
Decimal numbers as Text
word16Text :: Word16 -> Encoding' a Source #
word32Text :: Word32 -> Encoding' a Source #
word64Text :: Word64 -> Encoding' a Source #
integerText :: Integer -> Encoding' a Source #
doubleText :: Double -> Encoding' a Source #
>>>doubleText 42"\"42.0\""
>>>doubleText (0/0)"\"NaN\""
>>>doubleText (1/0)"\"+inf\""
>>>doubleText (-23/0)"\"-inf\""
scientificText :: Scientific -> Encoding' a Source #
Time
value
JSON tokens
openBracket :: Encoding' a Source #
closeBracket :: Encoding' a Source #
closeCurly :: Encoding' a Source #