{-# LANGUAGE LambdaCase #-}
module Data.Hermes.SIMDJSON.Types
(
Array(..)
, ArrayIter(..)
, Document(..)
, InputBuffer(..)
, JSONArray
, JSONArrayIter
, JSONObject
, JSONObjectIter
, JSONValue
, Object(..)
, ObjectIter(..)
, PaddedString
, Parser(..)
, SIMDDocument
, SIMDErrorCode(..)
, SIMDParser
, Value(..)
, ValueType(..)
)
where
import Foreign.Ptr (Ptr)
newtype Parser = Parser (Ptr SIMDParser)
newtype Document = Document (Ptr SIMDDocument)
newtype InputBuffer = InputBuffer (Ptr PaddedString)
newtype Value = Value (Ptr JSONValue)
newtype Object = Object (Ptr JSONObject)
newtype Array = Array (Ptr JSONArray)
newtype ArrayIter = ArrayIter (Ptr JSONArrayIter)
newtype ObjectIter = ObjectIter (Ptr JSONObjectIter)
data SIMDParser
data SIMDDocument
data PaddedString
data JSONValue
data JSONObject
data JSONArray
data JSONArrayIter
data JSONObjectIter
data SIMDErrorCode =
SUCCESS
| CAPACITY
| MEMALLOC
| TAPE_ERROR
| DEPTH_ERROR
| STRING_ERROR
| T_ATOM_ERROR
| F_ATOM_ERROR
| N_ATOM_ERROR
| NUMBER_ERROR
| UTF8_ERROR
| UNINITIALIZED
| EMPTY
| UNESCAPED_CHARS
| UNCLOSED_STRING
| UNSUPPORTED_ARCHITECTURE
| INCORRECT_TYPE
| NUMBER_OUT_OF_RANGE
| INDEX_OUT_OF_BOUNDS
| NO_SUCH_FIELD
| IO_ERROR
| INVALID_JSON_POINTER
| INVALID_URI_FRAGMENT
| UNEXPECTED_ERROR
| PARSER_IN_USE
| OUT_OF_ORDER_ITERATION
| INSUFFICIENT_PADDING
| INCOMPLETE_ARRAY_OR_OBJECT
| SCALAR_DOCUMENT_AS_VALUE
| OUT_OF_BOUNDS
| TRAILING_CONTENT
deriving (SIMDErrorCode -> SIMDErrorCode -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SIMDErrorCode -> SIMDErrorCode -> Bool
$c/= :: SIMDErrorCode -> SIMDErrorCode -> Bool
== :: SIMDErrorCode -> SIMDErrorCode -> Bool
$c== :: SIMDErrorCode -> SIMDErrorCode -> Bool
Eq, Int -> SIMDErrorCode -> ShowS
[SIMDErrorCode] -> ShowS
SIMDErrorCode -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SIMDErrorCode] -> ShowS
$cshowList :: [SIMDErrorCode] -> ShowS
show :: SIMDErrorCode -> String
$cshow :: SIMDErrorCode -> String
showsPrec :: Int -> SIMDErrorCode -> ShowS
$cshowsPrec :: Int -> SIMDErrorCode -> ShowS
Show, SIMDErrorCode
forall a. a -> a -> Bounded a
maxBound :: SIMDErrorCode
$cmaxBound :: SIMDErrorCode
minBound :: SIMDErrorCode
$cminBound :: SIMDErrorCode
Bounded, Int -> SIMDErrorCode
SIMDErrorCode -> Int
SIMDErrorCode -> [SIMDErrorCode]
SIMDErrorCode -> SIMDErrorCode
SIMDErrorCode -> SIMDErrorCode -> [SIMDErrorCode]
SIMDErrorCode -> SIMDErrorCode -> SIMDErrorCode -> [SIMDErrorCode]
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: SIMDErrorCode -> SIMDErrorCode -> SIMDErrorCode -> [SIMDErrorCode]
$cenumFromThenTo :: SIMDErrorCode -> SIMDErrorCode -> SIMDErrorCode -> [SIMDErrorCode]
enumFromTo :: SIMDErrorCode -> SIMDErrorCode -> [SIMDErrorCode]
$cenumFromTo :: SIMDErrorCode -> SIMDErrorCode -> [SIMDErrorCode]
enumFromThen :: SIMDErrorCode -> SIMDErrorCode -> [SIMDErrorCode]
$cenumFromThen :: SIMDErrorCode -> SIMDErrorCode -> [SIMDErrorCode]
enumFrom :: SIMDErrorCode -> [SIMDErrorCode]
$cenumFrom :: SIMDErrorCode -> [SIMDErrorCode]
fromEnum :: SIMDErrorCode -> Int
$cfromEnum :: SIMDErrorCode -> Int
toEnum :: Int -> SIMDErrorCode
$ctoEnum :: Int -> SIMDErrorCode
pred :: SIMDErrorCode -> SIMDErrorCode
$cpred :: SIMDErrorCode -> SIMDErrorCode
succ :: SIMDErrorCode -> SIMDErrorCode
$csucc :: SIMDErrorCode -> SIMDErrorCode
Enum)
data ValueType =
VArray
| VObject
| VNumber
| VString
| VBoolean
| VNull
deriving (ValueType -> ValueType -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ValueType -> ValueType -> Bool
$c/= :: ValueType -> ValueType -> Bool
== :: ValueType -> ValueType -> Bool
$c== :: ValueType -> ValueType -> Bool
Eq, ValueType
forall a. a -> a -> Bounded a
maxBound :: ValueType
$cmaxBound :: ValueType
minBound :: ValueType
$cminBound :: ValueType
Bounded, Int -> ValueType -> ShowS
[ValueType] -> ShowS
ValueType -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ValueType] -> ShowS
$cshowList :: [ValueType] -> ShowS
show :: ValueType -> String
$cshow :: ValueType -> String
showsPrec :: Int -> ValueType -> ShowS
$cshowsPrec :: Int -> ValueType -> ShowS
Show)
instance Enum ValueType where
fromEnum :: ValueType -> Int
fromEnum
= \case
ValueType
VArray -> Int
1
ValueType
VObject -> Int
2
ValueType
VNumber -> Int
3
ValueType
VString -> Int
4
ValueType
VBoolean -> Int
5
ValueType
VNull -> Int
6
toEnum :: Int -> ValueType
toEnum
= \case
Int
1 -> ValueType
VArray
Int
2 -> ValueType
VObject
Int
3 -> ValueType
VNumber
Int
4 -> ValueType
VString
Int
5 -> ValueType
VBoolean
Int
6 -> ValueType
VNull
Int
_ -> forall a. HasCallStack => String -> a
error String
"unknown int for Value type"