module Text.XML.Pugi.Foreign.Types where
import Foreign.ForeignPtr
import Foreign.Ptr
import qualified Data.ByteString as S
data MutableFlag = Mutable | Immutable
data NodeKind = Element
| PCData
| CData
| Comment
| Pi
| Declaration
| Doctype
| Unknown
newtype Document_ (k :: NodeKind) (m :: MutableFlag) = Document (ForeignPtr (Document_ k m))
type Document = Document_ Unknown Immutable
type MutableDocument = Document_ Unknown Mutable
newtype Node_ (k :: NodeKind) (m :: MutableFlag) = Node (ForeignPtr (Node_ k m))
type Node = Node_ Unknown Immutable
type MutableNode k = Node_ k Mutable
newtype ParseResult = ParseResult (Ptr ParseResult)
newtype XPath rt = XPath (ForeignPtr (XPath rt))
data NodeSet (m :: MutableFlag) = NodeSet Int (ForeignPtr (NodeSet m))
instance Show (NodeSet m) where
show (NodeSet i _) = "NodeSet " ++ show i ++ " items"
data Attr
data XNode
type Attribute = (S.ByteString, S.ByteString)
type XPathNode m = Either (Node_ Unknown m) Attribute