packages feed

gi-gobject-0.2.46.15: GI/GObject/Unions/Value_Data_Union_.hs


{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}

module GI.GObject.Unions.Value_Data_Union_
    ( 

-- * Exported types
    Value_Data_Union_(..)                   ,
    newZeroValue_Data_Union_                ,
    noValue_Data_Union_                     ,


 -- * Properties
-- ** VDouble
    value_Data_Union_ReadVDouble            ,
    value_Data_Union_VDouble                ,
    value_Data_Union_WriteVDouble           ,


-- ** VFloat
    value_Data_Union_ReadVFloat             ,
    value_Data_Union_VFloat                 ,
    value_Data_Union_WriteVFloat            ,


-- ** VInt
    value_Data_Union_ReadVInt               ,
    value_Data_Union_VInt                   ,
    value_Data_Union_WriteVInt              ,


-- ** VInt64
    value_Data_Union_ReadVInt64             ,
    value_Data_Union_VInt64                 ,
    value_Data_Union_WriteVInt64            ,


-- ** VLong
    value_Data_Union_ReadVLong              ,
    value_Data_Union_VLong                  ,
    value_Data_Union_WriteVLong             ,


-- ** VPointer
    value_Data_Union_ClearVPointer          ,
    value_Data_Union_ReadVPointer           ,
    value_Data_Union_VPointer               ,
    value_Data_Union_WriteVPointer          ,


-- ** VUint
    value_Data_Union_ReadVUint              ,
    value_Data_Union_VUint                  ,
    value_Data_Union_WriteVUint             ,


-- ** VUint64
    value_Data_Union_ReadVUint64            ,
    value_Data_Union_VUint64                ,
    value_Data_Union_WriteVUint64           ,


-- ** VUlong
    value_Data_Union_ReadVUlong             ,
    value_Data_Union_VUlong                 ,
    value_Data_Union_WriteVUlong            ,




    ) where

import Data.GI.Base.ShortPrelude

import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map

import GI.GObject.Types
import GI.GObject.Callbacks

newtype Value_Data_Union_ = Value_Data_Union_ (ForeignPtr Value_Data_Union_)
instance WrappedPtr Value_Data_Union_ where
    wrappedPtrCalloc = callocBytes 8
    wrappedPtrCopy = copyPtr 8
    wrappedPtrFree = Just ptr_to_g_free

-- | Construct a `Value_Data_Union_` struct initialized to zero.
newZeroValue_Data_Union_ :: MonadIO m => m Value_Data_Union_
newZeroValue_Data_Union_ = liftIO $ wrappedPtrCalloc >>= wrapPtr Value_Data_Union_

instance tag ~ 'AttrSet => Constructible Value_Data_Union_ tag where
    new _ attrs = do
        o <- newZeroValue_Data_Union_
        GI.Attributes.set o attrs
        return o


noValue_Data_Union_ :: Maybe Value_Data_Union_
noValue_Data_Union_ = Nothing

value_Data_Union_ReadVInt :: MonadIO m => Value_Data_Union_ -> m Int32
value_Data_Union_ReadVInt s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 0) :: IO Int32
    return val

value_Data_Union_WriteVInt :: MonadIO m => Value_Data_Union_ -> Int32 -> m ()
value_Data_Union_WriteVInt s val = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 0) (val :: Int32)

data Value_Data_Union_VIntFieldInfo
instance AttrInfo Value_Data_Union_VIntFieldInfo where
    type AttrAllowedOps Value_Data_Union_VIntFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint Value_Data_Union_VIntFieldInfo = (~) Int32
    type AttrBaseTypeConstraint Value_Data_Union_VIntFieldInfo = (~) Value_Data_Union_
    type AttrGetType Value_Data_Union_VIntFieldInfo = Int32
    type AttrLabel Value_Data_Union_VIntFieldInfo = "v_int"
    attrGet _ = value_Data_Union_ReadVInt
    attrSet _ = value_Data_Union_WriteVInt
    attrConstruct = undefined
    attrClear _ = undefined

value_Data_Union_VInt :: AttrLabelProxy "vInt"
value_Data_Union_VInt = AttrLabelProxy


value_Data_Union_ReadVUint :: MonadIO m => Value_Data_Union_ -> m Word32
value_Data_Union_ReadVUint s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 0) :: IO Word32
    return val

value_Data_Union_WriteVUint :: MonadIO m => Value_Data_Union_ -> Word32 -> m ()
value_Data_Union_WriteVUint s val = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 0) (val :: Word32)

data Value_Data_Union_VUintFieldInfo
instance AttrInfo Value_Data_Union_VUintFieldInfo where
    type AttrAllowedOps Value_Data_Union_VUintFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint Value_Data_Union_VUintFieldInfo = (~) Word32
    type AttrBaseTypeConstraint Value_Data_Union_VUintFieldInfo = (~) Value_Data_Union_
    type AttrGetType Value_Data_Union_VUintFieldInfo = Word32
    type AttrLabel Value_Data_Union_VUintFieldInfo = "v_uint"
    attrGet _ = value_Data_Union_ReadVUint
    attrSet _ = value_Data_Union_WriteVUint
    attrConstruct = undefined
    attrClear _ = undefined

value_Data_Union_VUint :: AttrLabelProxy "vUint"
value_Data_Union_VUint = AttrLabelProxy


value_Data_Union_ReadVLong :: MonadIO m => Value_Data_Union_ -> m CLong
value_Data_Union_ReadVLong s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 0) :: IO CLong
    return val

value_Data_Union_WriteVLong :: MonadIO m => Value_Data_Union_ -> CLong -> m ()
value_Data_Union_WriteVLong s val = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 0) (val :: CLong)

data Value_Data_Union_VLongFieldInfo
instance AttrInfo Value_Data_Union_VLongFieldInfo where
    type AttrAllowedOps Value_Data_Union_VLongFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint Value_Data_Union_VLongFieldInfo = (~) CLong
    type AttrBaseTypeConstraint Value_Data_Union_VLongFieldInfo = (~) Value_Data_Union_
    type AttrGetType Value_Data_Union_VLongFieldInfo = CLong
    type AttrLabel Value_Data_Union_VLongFieldInfo = "v_long"
    attrGet _ = value_Data_Union_ReadVLong
    attrSet _ = value_Data_Union_WriteVLong
    attrConstruct = undefined
    attrClear _ = undefined

value_Data_Union_VLong :: AttrLabelProxy "vLong"
value_Data_Union_VLong = AttrLabelProxy


value_Data_Union_ReadVUlong :: MonadIO m => Value_Data_Union_ -> m CULong
value_Data_Union_ReadVUlong s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 0) :: IO CULong
    return val

value_Data_Union_WriteVUlong :: MonadIO m => Value_Data_Union_ -> CULong -> m ()
value_Data_Union_WriteVUlong s val = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 0) (val :: CULong)

data Value_Data_Union_VUlongFieldInfo
instance AttrInfo Value_Data_Union_VUlongFieldInfo where
    type AttrAllowedOps Value_Data_Union_VUlongFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint Value_Data_Union_VUlongFieldInfo = (~) CULong
    type AttrBaseTypeConstraint Value_Data_Union_VUlongFieldInfo = (~) Value_Data_Union_
    type AttrGetType Value_Data_Union_VUlongFieldInfo = CULong
    type AttrLabel Value_Data_Union_VUlongFieldInfo = "v_ulong"
    attrGet _ = value_Data_Union_ReadVUlong
    attrSet _ = value_Data_Union_WriteVUlong
    attrConstruct = undefined
    attrClear _ = undefined

value_Data_Union_VUlong :: AttrLabelProxy "vUlong"
value_Data_Union_VUlong = AttrLabelProxy


value_Data_Union_ReadVInt64 :: MonadIO m => Value_Data_Union_ -> m Int64
value_Data_Union_ReadVInt64 s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 0) :: IO Int64
    return val

value_Data_Union_WriteVInt64 :: MonadIO m => Value_Data_Union_ -> Int64 -> m ()
value_Data_Union_WriteVInt64 s val = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 0) (val :: Int64)

data Value_Data_Union_VInt64FieldInfo
instance AttrInfo Value_Data_Union_VInt64FieldInfo where
    type AttrAllowedOps Value_Data_Union_VInt64FieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint Value_Data_Union_VInt64FieldInfo = (~) Int64
    type AttrBaseTypeConstraint Value_Data_Union_VInt64FieldInfo = (~) Value_Data_Union_
    type AttrGetType Value_Data_Union_VInt64FieldInfo = Int64
    type AttrLabel Value_Data_Union_VInt64FieldInfo = "v_int64"
    attrGet _ = value_Data_Union_ReadVInt64
    attrSet _ = value_Data_Union_WriteVInt64
    attrConstruct = undefined
    attrClear _ = undefined

value_Data_Union_VInt64 :: AttrLabelProxy "vInt64"
value_Data_Union_VInt64 = AttrLabelProxy


value_Data_Union_ReadVUint64 :: MonadIO m => Value_Data_Union_ -> m Word64
value_Data_Union_ReadVUint64 s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 0) :: IO Word64
    return val

value_Data_Union_WriteVUint64 :: MonadIO m => Value_Data_Union_ -> Word64 -> m ()
value_Data_Union_WriteVUint64 s val = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 0) (val :: Word64)

data Value_Data_Union_VUint64FieldInfo
instance AttrInfo Value_Data_Union_VUint64FieldInfo where
    type AttrAllowedOps Value_Data_Union_VUint64FieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint Value_Data_Union_VUint64FieldInfo = (~) Word64
    type AttrBaseTypeConstraint Value_Data_Union_VUint64FieldInfo = (~) Value_Data_Union_
    type AttrGetType Value_Data_Union_VUint64FieldInfo = Word64
    type AttrLabel Value_Data_Union_VUint64FieldInfo = "v_uint64"
    attrGet _ = value_Data_Union_ReadVUint64
    attrSet _ = value_Data_Union_WriteVUint64
    attrConstruct = undefined
    attrClear _ = undefined

value_Data_Union_VUint64 :: AttrLabelProxy "vUint64"
value_Data_Union_VUint64 = AttrLabelProxy


value_Data_Union_ReadVFloat :: MonadIO m => Value_Data_Union_ -> m Float
value_Data_Union_ReadVFloat s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 0) :: IO CFloat
    let val' = realToFrac val
    return val'

value_Data_Union_WriteVFloat :: MonadIO m => Value_Data_Union_ -> Float -> m ()
value_Data_Union_WriteVFloat s val = liftIO $ withManagedPtr s $ \ptr -> do
    let val' = realToFrac val
    poke (ptr `plusPtr` 0) (val' :: CFloat)

data Value_Data_Union_VFloatFieldInfo
instance AttrInfo Value_Data_Union_VFloatFieldInfo where
    type AttrAllowedOps Value_Data_Union_VFloatFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint Value_Data_Union_VFloatFieldInfo = (~) Float
    type AttrBaseTypeConstraint Value_Data_Union_VFloatFieldInfo = (~) Value_Data_Union_
    type AttrGetType Value_Data_Union_VFloatFieldInfo = Float
    type AttrLabel Value_Data_Union_VFloatFieldInfo = "v_float"
    attrGet _ = value_Data_Union_ReadVFloat
    attrSet _ = value_Data_Union_WriteVFloat
    attrConstruct = undefined
    attrClear _ = undefined

value_Data_Union_VFloat :: AttrLabelProxy "vFloat"
value_Data_Union_VFloat = AttrLabelProxy


value_Data_Union_ReadVDouble :: MonadIO m => Value_Data_Union_ -> m Double
value_Data_Union_ReadVDouble s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 0) :: IO CDouble
    let val' = realToFrac val
    return val'

value_Data_Union_WriteVDouble :: MonadIO m => Value_Data_Union_ -> Double -> m ()
value_Data_Union_WriteVDouble s val = liftIO $ withManagedPtr s $ \ptr -> do
    let val' = realToFrac val
    poke (ptr `plusPtr` 0) (val' :: CDouble)

data Value_Data_Union_VDoubleFieldInfo
instance AttrInfo Value_Data_Union_VDoubleFieldInfo where
    type AttrAllowedOps Value_Data_Union_VDoubleFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint Value_Data_Union_VDoubleFieldInfo = (~) Double
    type AttrBaseTypeConstraint Value_Data_Union_VDoubleFieldInfo = (~) Value_Data_Union_
    type AttrGetType Value_Data_Union_VDoubleFieldInfo = Double
    type AttrLabel Value_Data_Union_VDoubleFieldInfo = "v_double"
    attrGet _ = value_Data_Union_ReadVDouble
    attrSet _ = value_Data_Union_WriteVDouble
    attrConstruct = undefined
    attrClear _ = undefined

value_Data_Union_VDouble :: AttrLabelProxy "vDouble"
value_Data_Union_VDouble = AttrLabelProxy


value_Data_Union_ReadVPointer :: MonadIO m => Value_Data_Union_ -> m (Ptr ())
value_Data_Union_ReadVPointer s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 0) :: IO (Ptr ())
    return val

value_Data_Union_WriteVPointer :: MonadIO m => Value_Data_Union_ -> Ptr () -> m ()
value_Data_Union_WriteVPointer s val = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 0) (val :: Ptr ())

value_Data_Union_ClearVPointer :: MonadIO m => Value_Data_Union_ -> m ()
value_Data_Union_ClearVPointer s = liftIO $ withManagedPtr s $ \ptr -> do
    poke (ptr `plusPtr` 0) (nullPtr :: Ptr ())

data Value_Data_Union_VPointerFieldInfo
instance AttrInfo Value_Data_Union_VPointerFieldInfo where
    type AttrAllowedOps Value_Data_Union_VPointerFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint Value_Data_Union_VPointerFieldInfo = (~) (Ptr ())
    type AttrBaseTypeConstraint Value_Data_Union_VPointerFieldInfo = (~) Value_Data_Union_
    type AttrGetType Value_Data_Union_VPointerFieldInfo = Ptr ()
    type AttrLabel Value_Data_Union_VPointerFieldInfo = "v_pointer"
    attrGet _ = value_Data_Union_ReadVPointer
    attrSet _ = value_Data_Union_WriteVPointer
    attrConstruct = undefined
    attrClear _ = value_Data_Union_ClearVPointer

value_Data_Union_VPointer :: AttrLabelProxy "vPointer"
value_Data_Union_VPointer = AttrLabelProxy



type instance AttributeList Value_Data_Union_ = Value_Data_Union_AttributeList
type Value_Data_Union_AttributeList = ('[ '("vInt", Value_Data_Union_VIntFieldInfo), '("vUint", Value_Data_Union_VUintFieldInfo), '("vLong", Value_Data_Union_VLongFieldInfo), '("vUlong", Value_Data_Union_VUlongFieldInfo), '("vInt64", Value_Data_Union_VInt64FieldInfo), '("vUint64", Value_Data_Union_VUint64FieldInfo), '("vFloat", Value_Data_Union_VFloatFieldInfo), '("vDouble", Value_Data_Union_VDoubleFieldInfo), '("vPointer", Value_Data_Union_VPointerFieldInfo)] :: [(Symbol, *)])

type family ResolveValue_Data_Union_Method (t :: Symbol) (o :: *) :: * where
    ResolveValue_Data_Union_Method l o = MethodResolutionFailed l o

instance (info ~ ResolveValue_Data_Union_Method t Value_Data_Union_, MethodInfo info Value_Data_Union_ p) => IsLabelProxy t (Value_Data_Union_ -> p) where
    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)

#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveValue_Data_Union_Method t Value_Data_Union_, MethodInfo info Value_Data_Union_ p) => IsLabel t (Value_Data_Union_ -> p) where
    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif