{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-} ---------- GENERATED FILE, EDITS WILL BE LOST ---------- module Graphics.UI.Qtah.Generated.Core.QXmlStreamEntityDeclaration ( QXmlStreamEntityDeclarationValue (..), QXmlStreamEntityDeclarationConstPtr (..), eQ, nE, QXmlStreamEntityDeclarationPtr (..), aSSIGN, QXmlStreamEntityDeclarationConst (..), castQXmlStreamEntityDeclarationToConst, QXmlStreamEntityDeclaration (..), castQXmlStreamEntityDeclarationToNonconst, new, newCopy, QXmlStreamEntityDeclarationSuper (..), QXmlStreamEntityDeclarationSuperConst (..), ) where import Control.Monad ((>=>)) import qualified Foreign as HoppyF import qualified Foreign.C as HoppyFC import qualified Foreign.Hoppy.Runtime as HoppyFHR import Prelude (($), (.), (/=), (=<<), (==), (>>)) import qualified Prelude as HoppyP foreign import ccall "genpop__QXmlStreamEntityDeclaration_new" new' :: HoppyP.IO (HoppyF.Ptr QXmlStreamEntityDeclaration) foreign import ccall "genpop__QXmlStreamEntityDeclaration_newCopy" newCopy' :: HoppyF.Ptr QXmlStreamEntityDeclarationConst -> HoppyP.IO (HoppyF.Ptr QXmlStreamEntityDeclaration) foreign import ccall "genpop__QXmlStreamEntityDeclaration_EQ" eQ' :: HoppyF.Ptr QXmlStreamEntityDeclarationConst -> HoppyF.Ptr QXmlStreamEntityDeclarationConst -> HoppyP.IO HoppyFC.CBool foreign import ccall "genpop__QXmlStreamEntityDeclaration_NE" nE' :: HoppyF.Ptr QXmlStreamEntityDeclarationConst -> HoppyF.Ptr QXmlStreamEntityDeclarationConst -> HoppyP.IO HoppyFC.CBool foreign import ccall "genpop__QXmlStreamEntityDeclaration_ASSIGN" aSSIGN' :: HoppyF.Ptr QXmlStreamEntityDeclaration -> HoppyF.Ptr QXmlStreamEntityDeclarationConst -> HoppyP.IO (HoppyF.Ptr QXmlStreamEntityDeclaration) foreign import ccall "gendel__QXmlStreamEntityDeclaration" delete'QXmlStreamEntityDeclaration :: HoppyF.Ptr QXmlStreamEntityDeclarationConst -> HoppyP.IO () foreign import ccall "&gendel__QXmlStreamEntityDeclaration" deletePtr'QXmlStreamEntityDeclaration :: HoppyF.FunPtr (HoppyF.Ptr QXmlStreamEntityDeclarationConst -> HoppyP.IO ()) class QXmlStreamEntityDeclarationValue a where withQXmlStreamEntityDeclarationPtr :: a -> (QXmlStreamEntityDeclarationConst -> HoppyP.IO b) -> HoppyP.IO b instance {-# OVERLAPPABLE #-} QXmlStreamEntityDeclarationConstPtr a => QXmlStreamEntityDeclarationValue a where withQXmlStreamEntityDeclarationPtr = HoppyP.flip ($) . toQXmlStreamEntityDeclarationConst class (HoppyFHR.CppPtr this) => QXmlStreamEntityDeclarationConstPtr this where toQXmlStreamEntityDeclarationConst :: this -> QXmlStreamEntityDeclarationConst eQ :: (QXmlStreamEntityDeclarationValue this, QXmlStreamEntityDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool) eQ arg'1 arg'2 = withQXmlStreamEntityDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' -> withQXmlStreamEntityDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' -> ( (HoppyP.return . (/= 0)) ) =<< (eQ' arg'1' arg'2') nE :: (QXmlStreamEntityDeclarationValue this, QXmlStreamEntityDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool) nE arg'1 arg'2 = withQXmlStreamEntityDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' -> withQXmlStreamEntityDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' -> ( (HoppyP.return . (/= 0)) ) =<< (nE' arg'1' arg'2') class (QXmlStreamEntityDeclarationConstPtr this) => QXmlStreamEntityDeclarationPtr this where toQXmlStreamEntityDeclaration :: this -> QXmlStreamEntityDeclaration aSSIGN :: (QXmlStreamEntityDeclarationPtr this, QXmlStreamEntityDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QXmlStreamEntityDeclaration) aSSIGN arg'1 arg'2 = HoppyFHR.withCppPtr (toQXmlStreamEntityDeclaration arg'1) $ \arg'1' -> withQXmlStreamEntityDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' -> HoppyP.fmap QXmlStreamEntityDeclaration (aSSIGN' arg'1' arg'2') data QXmlStreamEntityDeclarationConst = QXmlStreamEntityDeclarationConst (HoppyF.Ptr QXmlStreamEntityDeclarationConst) | QXmlStreamEntityDeclarationConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QXmlStreamEntityDeclarationConst) deriving (HoppyP.Show) instance HoppyP.Eq QXmlStreamEntityDeclarationConst where x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y instance HoppyP.Ord QXmlStreamEntityDeclarationConst where compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y) castQXmlStreamEntityDeclarationToConst :: QXmlStreamEntityDeclaration -> QXmlStreamEntityDeclarationConst castQXmlStreamEntityDeclarationToConst (QXmlStreamEntityDeclaration ptr') = QXmlStreamEntityDeclarationConst $ HoppyF.castPtr ptr' castQXmlStreamEntityDeclarationToConst (QXmlStreamEntityDeclarationGc fptr' ptr') = QXmlStreamEntityDeclarationConstGc fptr' $ HoppyF.castPtr ptr' instance HoppyFHR.CppPtr QXmlStreamEntityDeclarationConst where nullptr = QXmlStreamEntityDeclarationConst HoppyF.nullPtr withCppPtr (QXmlStreamEntityDeclarationConst ptr') f' = f' ptr' withCppPtr (QXmlStreamEntityDeclarationConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr' toPtr (QXmlStreamEntityDeclarationConst ptr') = ptr' toPtr (QXmlStreamEntityDeclarationConstGc _ ptr') = ptr' touchCppPtr (QXmlStreamEntityDeclarationConst _) = HoppyP.return () touchCppPtr (QXmlStreamEntityDeclarationConstGc fptr' _) = HoppyF.touchForeignPtr fptr' instance HoppyFHR.Deletable QXmlStreamEntityDeclarationConst where delete (QXmlStreamEntityDeclarationConst ptr') = delete'QXmlStreamEntityDeclaration ptr' delete (QXmlStreamEntityDeclarationConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QXmlStreamEntityDeclarationConst", " object."] toGc this'@(QXmlStreamEntityDeclarationConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QXmlStreamEntityDeclarationConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QXmlStreamEntityDeclaration :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ()) toGc this'@(QXmlStreamEntityDeclarationConstGc {}) = HoppyP.return this' instance HoppyFHR.Copyable QXmlStreamEntityDeclarationConst QXmlStreamEntityDeclaration where copy = newCopy instance QXmlStreamEntityDeclarationConstPtr QXmlStreamEntityDeclarationConst where toQXmlStreamEntityDeclarationConst = HoppyP.id data QXmlStreamEntityDeclaration = QXmlStreamEntityDeclaration (HoppyF.Ptr QXmlStreamEntityDeclaration) | QXmlStreamEntityDeclarationGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QXmlStreamEntityDeclaration) deriving (HoppyP.Show) instance HoppyP.Eq QXmlStreamEntityDeclaration where x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y instance HoppyP.Ord QXmlStreamEntityDeclaration where compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y) castQXmlStreamEntityDeclarationToNonconst :: QXmlStreamEntityDeclarationConst -> QXmlStreamEntityDeclaration castQXmlStreamEntityDeclarationToNonconst (QXmlStreamEntityDeclarationConst ptr') = QXmlStreamEntityDeclaration $ HoppyF.castPtr ptr' castQXmlStreamEntityDeclarationToNonconst (QXmlStreamEntityDeclarationConstGc fptr' ptr') = QXmlStreamEntityDeclarationGc fptr' $ HoppyF.castPtr ptr' instance HoppyFHR.CppPtr QXmlStreamEntityDeclaration where nullptr = QXmlStreamEntityDeclaration HoppyF.nullPtr withCppPtr (QXmlStreamEntityDeclaration ptr') f' = f' ptr' withCppPtr (QXmlStreamEntityDeclarationGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr' toPtr (QXmlStreamEntityDeclaration ptr') = ptr' toPtr (QXmlStreamEntityDeclarationGc _ ptr') = ptr' touchCppPtr (QXmlStreamEntityDeclaration _) = HoppyP.return () touchCppPtr (QXmlStreamEntityDeclarationGc fptr' _) = HoppyF.touchForeignPtr fptr' instance HoppyFHR.Deletable QXmlStreamEntityDeclaration where delete (QXmlStreamEntityDeclaration ptr') = delete'QXmlStreamEntityDeclaration $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QXmlStreamEntityDeclarationConst) delete (QXmlStreamEntityDeclarationGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QXmlStreamEntityDeclaration", " object."] toGc this'@(QXmlStreamEntityDeclaration ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QXmlStreamEntityDeclarationGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QXmlStreamEntityDeclaration :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ()) toGc this'@(QXmlStreamEntityDeclarationGc {}) = HoppyP.return this' instance HoppyFHR.Copyable QXmlStreamEntityDeclaration QXmlStreamEntityDeclaration where copy = newCopy instance QXmlStreamEntityDeclarationConstPtr QXmlStreamEntityDeclaration where toQXmlStreamEntityDeclarationConst (QXmlStreamEntityDeclaration ptr') = QXmlStreamEntityDeclarationConst $ (HoppyF.castPtr :: HoppyF.Ptr QXmlStreamEntityDeclaration -> HoppyF.Ptr QXmlStreamEntityDeclarationConst) ptr' toQXmlStreamEntityDeclarationConst (QXmlStreamEntityDeclarationGc fptr' ptr') = QXmlStreamEntityDeclarationConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QXmlStreamEntityDeclaration -> HoppyF.Ptr QXmlStreamEntityDeclarationConst) ptr' instance QXmlStreamEntityDeclarationPtr QXmlStreamEntityDeclaration where toQXmlStreamEntityDeclaration = HoppyP.id new :: (HoppyP.IO QXmlStreamEntityDeclaration) new = HoppyP.fmap QXmlStreamEntityDeclaration (new') newCopy :: (QXmlStreamEntityDeclarationValue arg'1) => (arg'1) -> (HoppyP.IO QXmlStreamEntityDeclaration) newCopy arg'1 = withQXmlStreamEntityDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' -> HoppyP.fmap QXmlStreamEntityDeclaration (newCopy' arg'1') class QXmlStreamEntityDeclarationSuper a where downToQXmlStreamEntityDeclaration :: a -> QXmlStreamEntityDeclaration class QXmlStreamEntityDeclarationSuperConst a where downToQXmlStreamEntityDeclarationConst :: a -> QXmlStreamEntityDeclarationConst instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QXmlStreamEntityDeclaration)) QXmlStreamEntityDeclaration where assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value' instance QXmlStreamEntityDeclarationValue a => HoppyFHR.Assignable QXmlStreamEntityDeclaration a where assign x' y' = aSSIGN x' y' >> HoppyP.return () instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QXmlStreamEntityDeclaration)) QXmlStreamEntityDeclaration where decode = HoppyP.fmap QXmlStreamEntityDeclaration . HoppyF.peek instance HoppyFHR.Decodable QXmlStreamEntityDeclaration (QXmlStreamEntityDeclaration) where decode = HoppyFHR.decode . toQXmlStreamEntityDeclarationConst instance HoppyFHR.Decodable QXmlStreamEntityDeclarationConst (QXmlStreamEntityDeclaration) where decode = HoppyFHR.copy >=> HoppyFHR.toGc