packages feed

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

{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
---------- GENERATED FILE, EDITS WILL BE LOST ----------

module Graphics.UI.Qtah.Generated.Core.QTextEncoder (
  QTextEncoderValue (..),
  QTextEncoderConstPtr (..),
  QTextEncoderPtr (..),
  fromUnicodeString,
  fromUnicodeQChar,
  QTextEncoderConst (..),
  castQTextEncoderToConst,
  QTextEncoder (..),
  castQTextEncoderToNonconst,
  new,
  QTextEncoderSuper (..),
  QTextEncoderSuperConst (..),
  ) where

import qualified Data.ByteString as QtahDBS
import qualified Foreign as HoppyF
import qualified Foreign.C as HoppyFC
import qualified Foreign.Hoppy.Runtime as HoppyFHR
import qualified Graphics.UI.Qtah.Generated.Core.QByteArray as M12
import qualified Graphics.UI.Qtah.Generated.Core.QChar as M16
import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
import qualified Graphics.UI.Qtah.Generated.Core.QTextCodec as M150
import Prelude (($), (.), (=<<), (==), (>>=))
import qualified Prelude as HoppyP

foreign import ccall "genpop__QTextEncoder_new" new' ::  HoppyF.Ptr M150.QTextCodec -> HoppyP.IO (HoppyF.Ptr QTextEncoder)
foreign import ccall "genpop__QTextEncoder_fromUnicodeString" fromUnicodeString' ::  HoppyF.Ptr QTextEncoder -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
foreign import ccall "genpop__QTextEncoder_fromUnicodeQChar" fromUnicodeQChar' ::  HoppyF.Ptr QTextEncoder -> HoppyF.Ptr M16.QCharConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
foreign import ccall "gendel__QTextEncoder" delete'QTextEncoder :: HoppyF.Ptr QTextEncoderConst -> HoppyP.IO ()
foreign import ccall "&gendel__QTextEncoder" deletePtr'QTextEncoder :: HoppyF.FunPtr (HoppyF.Ptr QTextEncoderConst -> HoppyP.IO ())

class QTextEncoderValue a where
  withQTextEncoderPtr :: a -> (QTextEncoderConst -> HoppyP.IO b) -> HoppyP.IO b

instance {-# OVERLAPPABLE #-} QTextEncoderConstPtr a => QTextEncoderValue a where
  withQTextEncoderPtr = HoppyP.flip ($) . toQTextEncoderConst

class (HoppyFHR.CppPtr this) => QTextEncoderConstPtr this where
  toQTextEncoderConst :: this -> QTextEncoderConst

class (QTextEncoderConstPtr this) => QTextEncoderPtr this where
  toQTextEncoder :: this -> QTextEncoder

fromUnicodeString :: (QTextEncoderPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QtahDBS.ByteString)
fromUnicodeString arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQTextEncoder arg'1) $ \arg'1' ->
  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
  (fromUnicodeString' arg'1' arg'2')

fromUnicodeQChar :: (QTextEncoderPtr this, M16.QCharValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO QtahDBS.ByteString)
fromUnicodeQChar arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQTextEncoder arg'1) $ \arg'1' ->
  M16.withQCharPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'3 >>= \arg'3' ->
  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
  (fromUnicodeQChar' arg'1' arg'2' arg'3')

data QTextEncoderConst =
    QTextEncoderConst (HoppyF.Ptr QTextEncoderConst)
  | QTextEncoderConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTextEncoderConst)
  deriving (HoppyP.Show)

instance HoppyP.Eq QTextEncoderConst where
  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y

instance HoppyP.Ord QTextEncoderConst where
  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)

castQTextEncoderToConst :: QTextEncoder -> QTextEncoderConst
castQTextEncoderToConst (QTextEncoder ptr') = QTextEncoderConst $ HoppyF.castPtr ptr'
castQTextEncoderToConst (QTextEncoderGc fptr' ptr') = QTextEncoderConstGc fptr' $ HoppyF.castPtr ptr'

instance HoppyFHR.CppPtr QTextEncoderConst where
  nullptr = QTextEncoderConst HoppyF.nullPtr
  
  withCppPtr (QTextEncoderConst ptr') f' = f' ptr'
  withCppPtr (QTextEncoderConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
  
  toPtr (QTextEncoderConst ptr') = ptr'
  toPtr (QTextEncoderConstGc _ ptr') = ptr'
  
  touchCppPtr (QTextEncoderConst _) = HoppyP.return ()
  touchCppPtr (QTextEncoderConstGc fptr' _) = HoppyF.touchForeignPtr fptr'

instance HoppyFHR.Deletable QTextEncoderConst where
  delete (QTextEncoderConst ptr') = delete'QTextEncoder ptr'
  delete (QTextEncoderConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QTextEncoderConst", " object."]
  
  toGc this'@(QTextEncoderConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QTextEncoderConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QTextEncoder :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
  toGc this'@(QTextEncoderConstGc {}) = HoppyP.return this'

instance QTextEncoderConstPtr QTextEncoderConst where
  toQTextEncoderConst = HoppyP.id

data QTextEncoder =
    QTextEncoder (HoppyF.Ptr QTextEncoder)
  | QTextEncoderGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTextEncoder)
  deriving (HoppyP.Show)

instance HoppyP.Eq QTextEncoder where
  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y

instance HoppyP.Ord QTextEncoder where
  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)

castQTextEncoderToNonconst :: QTextEncoderConst -> QTextEncoder
castQTextEncoderToNonconst (QTextEncoderConst ptr') = QTextEncoder $ HoppyF.castPtr ptr'
castQTextEncoderToNonconst (QTextEncoderConstGc fptr' ptr') = QTextEncoderGc fptr' $ HoppyF.castPtr ptr'

instance HoppyFHR.CppPtr QTextEncoder where
  nullptr = QTextEncoder HoppyF.nullPtr
  
  withCppPtr (QTextEncoder ptr') f' = f' ptr'
  withCppPtr (QTextEncoderGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
  
  toPtr (QTextEncoder ptr') = ptr'
  toPtr (QTextEncoderGc _ ptr') = ptr'
  
  touchCppPtr (QTextEncoder _) = HoppyP.return ()
  touchCppPtr (QTextEncoderGc fptr' _) = HoppyF.touchForeignPtr fptr'

instance HoppyFHR.Deletable QTextEncoder where
  delete (QTextEncoder ptr') = delete'QTextEncoder $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QTextEncoderConst)
  delete (QTextEncoderGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QTextEncoder", " object."]
  
  toGc this'@(QTextEncoder ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QTextEncoderGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QTextEncoder :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
  toGc this'@(QTextEncoderGc {}) = HoppyP.return this'

instance QTextEncoderConstPtr QTextEncoder where
  toQTextEncoderConst (QTextEncoder ptr') = QTextEncoderConst $ (HoppyF.castPtr :: HoppyF.Ptr QTextEncoder -> HoppyF.Ptr QTextEncoderConst) ptr'
  toQTextEncoderConst (QTextEncoderGc fptr' ptr') = QTextEncoderConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QTextEncoder -> HoppyF.Ptr QTextEncoderConst) ptr'

instance QTextEncoderPtr QTextEncoder where
  toQTextEncoder = HoppyP.id

new :: (M150.QTextCodecPtr arg'1) => (arg'1) -> (HoppyP.IO QTextEncoder)
new arg'1 =
  HoppyFHR.withCppPtr (M150.toQTextCodec arg'1) $ \arg'1' ->
  HoppyP.fmap QTextEncoder
  (new' arg'1')

class QTextEncoderSuper a where
  downToQTextEncoder :: a -> QTextEncoder


class QTextEncoderSuperConst a where
  downToQTextEncoderConst :: a -> QTextEncoderConst


instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QTextEncoder)) QTextEncoder where
  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'

instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QTextEncoder)) QTextEncoder where
  decode = HoppyP.fmap QTextEncoder . HoppyF.peek