module Pdf.Toolbox.Core.Object.Types
(
Object(..),
Number(..),
Boolean(..),
Name(..),
Dict(..),
Array(..),
Str(..),
Stream(..),
Ref(..)
)
where
import Data.Monoid
import Data.String
import Data.ByteString (ByteString)
data Number =
NumInt Int |
NumReal Double
deriving (Eq, Show)
newtype Boolean = Boolean Bool
deriving (Eq, Show)
newtype Name = Name ByteString
deriving (Eq, Show, Ord, Monoid)
newtype Dict = Dict [(Name, Object ())]
deriving (Eq, Show)
newtype Array = Array [Object ()]
deriving (Eq, Show)
newtype Str = Str ByteString
deriving (Eq, Show)
data Stream a = Stream Dict a
deriving (Eq, Show)
data Ref = Ref Int Int
deriving (Eq, Show, Ord)
data Object a =
ONumber Number |
OBoolean Boolean |
OName Name |
ODict Dict |
OArray Array |
OStr Str |
OStream (Stream a) |
ORef Ref |
ONull
deriving (Eq, Show)
instance IsString Name where
fromString = Name . fromString
instance IsString Str where
fromString = Str . fromString