aeson-2.1.2.0: Fast JSON parsing and encoding
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Aeson.Decoding.Tokens

Contents

Description

Token definitions.

Synopsis

Types

data Tokens k e Source #

A well-formed JSON token stream.

Note: Lit exists to make Tokens have only 6 constructors. This may or may not have impact on performance.

Since: 2.1.2.0

Constructors

TkLit !Lit k 
TkText !Text k 
TkNumber !Number k 
TkArrayOpen (TkArray k e) 
TkRecordOpen (TkRecord k e) 
TkErr e 

Instances

Instances details
Bifoldable Tokens Source # 
Instance details

Defined in Data.Aeson.Decoding.Tokens

Methods

bifold :: Monoid m => Tokens m m -> m #

bifoldMap :: Monoid m => (a -> m) -> (b -> m) -> Tokens a b -> m #

bifoldr :: (a -> c -> c) -> (b -> c -> c) -> c -> Tokens a b -> c #

bifoldl :: (c -> a -> c) -> (c -> b -> c) -> c -> Tokens a b -> c #

Bifunctor Tokens Source # 
Instance details

Defined in Data.Aeson.Decoding.Tokens

Methods

bimap :: (a -> b) -> (c -> d) -> Tokens a c -> Tokens b d #

first :: (a -> b) -> Tokens a c -> Tokens b c #

second :: (b -> c) -> Tokens a b -> Tokens a c #

Bitraversable Tokens Source # 
Instance details

Defined in Data.Aeson.Decoding.Tokens

Methods

bitraverse :: Applicative f => (a -> f c) -> (b -> f d) -> Tokens a b -> f (Tokens c d) #

Foldable (Tokens k) Source # 
Instance details

Defined in Data.Aeson.Decoding.Tokens

Methods

fold :: Monoid m => Tokens k m -> m #

foldMap :: Monoid m => (a -> m) -> Tokens k a -> m #

foldMap' :: Monoid m => (a -> m) -> Tokens k a -> m #

foldr :: (a -> b -> b) -> b -> Tokens k a -> b #

foldr' :: (a -> b -> b) -> b -> Tokens k a -> b #

foldl :: (b -> a -> b) -> b -> Tokens k a -> b #

foldl' :: (b -> a -> b) -> b -> Tokens k a -> b #

foldr1 :: (a -> a -> a) -> Tokens k a -> a #

foldl1 :: (a -> a -> a) -> Tokens k a -> a #

toList :: Tokens k a -> [a] #

null :: Tokens k a -> Bool #

length :: Tokens k a -> Int #

elem :: Eq a => a -> Tokens k a -> Bool #

maximum :: Ord a => Tokens k a -> a #

minimum :: Ord a => Tokens k a -> a #

sum :: Num a => Tokens k a -> a #

product :: Num a => Tokens k a -> a #

Traversable (Tokens k) Source # 
Instance details

Defined in Data.Aeson.Decoding.Tokens

Methods

traverse :: Applicative f => (a -> f b) -> Tokens k a -> f (Tokens k b) #

sequenceA :: Applicative f => Tokens k (f a) -> f (Tokens k a) #

mapM :: Monad m => (a -> m b) -> Tokens k a -> m (Tokens k b) #

sequence :: Monad m => Tokens k (m a) -> m (Tokens k a) #

Functor (Tokens k) Source # 
Instance details

Defined in Data.Aeson.Decoding.Tokens

Methods

fmap :: (a -> b) -> Tokens k a -> Tokens k b #

(<$) :: a -> Tokens k b -> Tokens k a #

(Show k, Show e) => Show (Tokens k e) Source # 
Instance details

Defined in Data.Aeson.Decoding.Tokens

Methods

showsPrec :: Int -> Tokens k e -> ShowS #

show :: Tokens k e -> String #

showList :: [Tokens k e] -> ShowS #

(Eq k, Eq e) => Eq (Tokens k e) Source # 
Instance details

Defined in Data.Aeson.Decoding.Tokens

Methods

(==) :: Tokens k e -> Tokens k e -> Bool #

(/=) :: Tokens k e -> Tokens k e -> Bool #

data Lit Source #

Literals. null, true, false.

Constructors

LitNull 
LitTrue 
LitFalse 

Instances

Instances details
Show Lit Source # 
Instance details

Defined in Data.Aeson.Decoding.Tokens

Methods

showsPrec :: Int -> Lit -> ShowS #

show :: Lit -> String #

showList :: [Lit] -> ShowS #

Eq Lit Source # 
Instance details

Defined in Data.Aeson.Decoding.Tokens

Methods

(==) :: Lit -> Lit -> Bool #

(/=) :: Lit -> Lit -> Bool #

data Number Source #

Numbers

We preserve whether the number was integral, decimal or in scientific form.

Constructors

NumInteger !Integer

e.g. 123

NumDecimal !Scientific

e.g. 123.456

NumScientific !Scientific

e.g. 123e456, 123e-456 or 123.456E-967

Instances

Instances details
Show Number Source # 
Instance details

Defined in Data.Aeson.Decoding.Tokens

Eq Number Source # 
Instance details

Defined in Data.Aeson.Decoding.Tokens

Methods

(==) :: Number -> Number -> Bool #

(/=) :: Number -> Number -> Bool #

data TkArray k e Source #

Array tokens.

Constructors

TkItem (Tokens (TkArray k e) e) 
TkArrayEnd k 
TkArrayErr e 

Instances

Instances details
Bifoldable TkArray Source # 
Instance details

Defined in Data.Aeson.Decoding.Tokens

Methods

bifold :: Monoid m => TkArray m m -> m #

bifoldMap :: Monoid m => (a -> m) -> (b -> m) -> TkArray a b -> m #

bifoldr :: (a -> c -> c) -> (b -> c -> c) -> c -> TkArray a b -> c #

bifoldl :: (c -> a -> c) -> (c -> b -> c) -> c -> TkArray a b -> c #

Bifunctor TkArray Source # 
Instance details

Defined in Data.Aeson.Decoding.Tokens

Methods

bimap :: (a -> b) -> (c -> d) -> TkArray a c -> TkArray b d #

first :: (a -> b) -> TkArray a c -> TkArray b c #

second :: (b -> c) -> TkArray a b -> TkArray a c #

Bitraversable TkArray Source # 
Instance details

Defined in Data.Aeson.Decoding.Tokens

Methods

bitraverse :: Applicative f => (a -> f c) -> (b -> f d) -> TkArray a b -> f (TkArray c d) #

Foldable (TkArray k) Source # 
Instance details

Defined in Data.Aeson.Decoding.Tokens

Methods

fold :: Monoid m => TkArray k m -> m #

foldMap :: Monoid m => (a -> m) -> TkArray k a -> m #

foldMap' :: Monoid m => (a -> m) -> TkArray k a -> m #

foldr :: (a -> b -> b) -> b -> TkArray k a -> b #

foldr' :: (a -> b -> b) -> b -> TkArray k a -> b #

foldl :: (b -> a -> b) -> b -> TkArray k a -> b #

foldl' :: (b -> a -> b) -> b -> TkArray k a -> b #

foldr1 :: (a -> a -> a) -> TkArray k a -> a #

foldl1 :: (a -> a -> a) -> TkArray k a -> a #

toList :: TkArray k a -> [a] #

null :: TkArray k a -> Bool #

length :: TkArray k a -> Int #

elem :: Eq a => a -> TkArray k a -> Bool #

maximum :: Ord a => TkArray k a -> a #

minimum :: Ord a => TkArray k a -> a #

sum :: Num a => TkArray k a -> a #

product :: Num a => TkArray k a -> a #

Traversable (TkArray k) Source # 
Instance details

Defined in Data.Aeson.Decoding.Tokens

Methods

traverse :: Applicative f => (a -> f b) -> TkArray k a -> f (TkArray k b) #

sequenceA :: Applicative f => TkArray k (f a) -> f (TkArray k a) #

mapM :: Monad m => (a -> m b) -> TkArray k a -> m (TkArray k b) #

sequence :: Monad m => TkArray k (m a) -> m (TkArray k a) #

Functor (TkArray k) Source # 
Instance details

Defined in Data.Aeson.Decoding.Tokens

Methods

fmap :: (a -> b) -> TkArray k a -> TkArray k b #

(<$) :: a -> TkArray k b -> TkArray k a #

(Show k, Show e) => Show (TkArray k e) Source # 
Instance details

Defined in Data.Aeson.Decoding.Tokens

Methods

showsPrec :: Int -> TkArray k e -> ShowS #

show :: TkArray k e -> String #

showList :: [TkArray k e] -> ShowS #

(Eq k, Eq e) => Eq (TkArray k e) Source # 
Instance details

Defined in Data.Aeson.Decoding.Tokens

Methods

(==) :: TkArray k e -> TkArray k e -> Bool #

(/=) :: TkArray k e -> TkArray k e -> Bool #

data TkRecord k e Source #

Record tokens.

Constructors

TkPair !Key (Tokens (TkRecord k e) e) 
TkRecordEnd k 
TkRecordErr e 

Instances

Instances details
Bifoldable TkRecord Source # 
Instance details

Defined in Data.Aeson.Decoding.Tokens

Methods

bifold :: Monoid m => TkRecord m m -> m #

bifoldMap :: Monoid m => (a -> m) -> (b -> m) -> TkRecord a b -> m #

bifoldr :: (a -> c -> c) -> (b -> c -> c) -> c -> TkRecord a b -> c #

bifoldl :: (c -> a -> c) -> (c -> b -> c) -> c -> TkRecord a b -> c #

Bifunctor TkRecord Source # 
Instance details

Defined in Data.Aeson.Decoding.Tokens

Methods

bimap :: (a -> b) -> (c -> d) -> TkRecord a c -> TkRecord b d #

first :: (a -> b) -> TkRecord a c -> TkRecord b c #

second :: (b -> c) -> TkRecord a b -> TkRecord a c #

Bitraversable TkRecord Source # 
Instance details

Defined in Data.Aeson.Decoding.Tokens

Methods

bitraverse :: Applicative f => (a -> f c) -> (b -> f d) -> TkRecord a b -> f (TkRecord c d) #

Foldable (TkRecord k) Source # 
Instance details

Defined in Data.Aeson.Decoding.Tokens

Methods

fold :: Monoid m => TkRecord k m -> m #

foldMap :: Monoid m => (a -> m) -> TkRecord k a -> m #

foldMap' :: Monoid m => (a -> m) -> TkRecord k a -> m #

foldr :: (a -> b -> b) -> b -> TkRecord k a -> b #

foldr' :: (a -> b -> b) -> b -> TkRecord k a -> b #

foldl :: (b -> a -> b) -> b -> TkRecord k a -> b #

foldl' :: (b -> a -> b) -> b -> TkRecord k a -> b #

foldr1 :: (a -> a -> a) -> TkRecord k a -> a #

foldl1 :: (a -> a -> a) -> TkRecord k a -> a #

toList :: TkRecord k a -> [a] #

null :: TkRecord k a -> Bool #

length :: TkRecord k a -> Int #

elem :: Eq a => a -> TkRecord k a -> Bool #

maximum :: Ord a => TkRecord k a -> a #

minimum :: Ord a => TkRecord k a -> a #

sum :: Num a => TkRecord k a -> a #

product :: Num a => TkRecord k a -> a #

Traversable (TkRecord k) Source # 
Instance details

Defined in Data.Aeson.Decoding.Tokens

Methods

traverse :: Applicative f => (a -> f b) -> TkRecord k a -> f (TkRecord k b) #

sequenceA :: Applicative f => TkRecord k (f a) -> f (TkRecord k a) #

mapM :: Monad m => (a -> m b) -> TkRecord k a -> m (TkRecord k b) #

sequence :: Monad m => TkRecord k (m a) -> m (TkRecord k a) #

Functor (TkRecord k) Source # 
Instance details

Defined in Data.Aeson.Decoding.Tokens

Methods

fmap :: (a -> b) -> TkRecord k a -> TkRecord k b #

(<$) :: a -> TkRecord k b -> TkRecord k a #

(Show k, Show e) => Show (TkRecord k e) Source # 
Instance details

Defined in Data.Aeson.Decoding.Tokens

Methods

showsPrec :: Int -> TkRecord k e -> ShowS #

show :: TkRecord k e -> String #

showList :: [TkRecord k e] -> ShowS #

(Eq k, Eq e) => Eq (TkRecord k e) Source # 
Instance details

Defined in Data.Aeson.Decoding.Tokens

Methods

(==) :: TkRecord k e -> TkRecord k e -> Bool #

(/=) :: TkRecord k e -> TkRecord k e -> Bool #