packages feed

qtah-qt5-0.8.0: src/Graphics/UI/Qtah/Generated/Core/QXmlStreamEntityDeclaration.hs

{-# 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