gi-girepository-0.1.46.13: GI/GIRepository/Unions/Argument.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.GIRepository.Unions.Argument
(
-- * Exported types
Argument(..) ,
newZeroArgument ,
noArgument ,
-- * Properties
-- ** VBoolean
argumentReadVBoolean ,
-- ** VDouble
argumentReadVDouble ,
-- ** VFloat
argumentReadVFloat ,
-- ** VInt
argumentReadVInt ,
-- ** VInt16
argumentReadVInt16 ,
-- ** VInt32
argumentReadVInt32 ,
-- ** VInt64
argumentReadVInt64 ,
-- ** VInt8
argumentReadVInt8 ,
-- ** VLong
argumentReadVLong ,
-- ** VPointer
argumentReadVPointer ,
-- ** VShort
argumentReadVShort ,
-- ** VSize
argumentReadVSize ,
-- ** VSsize
argumentReadVSsize ,
-- ** VString
argumentReadVString ,
-- ** VUint
argumentReadVUint ,
-- ** VUint16
argumentReadVUint16 ,
-- ** VUint32
argumentReadVUint32 ,
-- ** VUint64
argumentReadVUint64 ,
-- ** VUint8
argumentReadVUint8 ,
-- ** VUlong
argumentReadVUlong ,
-- ** VUshort
argumentReadVUshort ,
) where
import Prelude ()
import Data.GI.Base.ShortPrelude
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import GI.GIRepository.Types
import GI.GIRepository.Callbacks
newtype Argument = Argument (ForeignPtr Argument)
-- | Construct a `Argument` struct initialized to zero.
newZeroArgument :: MonadIO m => m Argument
newZeroArgument = liftIO $ callocBytes 8 >>= wrapPtr Argument
noArgument :: Maybe Argument
noArgument = Nothing
argumentReadVBoolean :: Argument -> IO Bool
argumentReadVBoolean s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO CInt
let val' = (/= 0) val
return val'
argumentReadVInt8 :: Argument -> IO Int8
argumentReadVInt8 s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO Int8
return val
argumentReadVUint8 :: Argument -> IO Word8
argumentReadVUint8 s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO Word8
return val
argumentReadVInt16 :: Argument -> IO Int16
argumentReadVInt16 s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO Int16
return val
argumentReadVUint16 :: Argument -> IO Word16
argumentReadVUint16 s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO Word16
return val
argumentReadVInt32 :: Argument -> IO Int32
argumentReadVInt32 s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO Int32
return val
argumentReadVUint32 :: Argument -> IO Word32
argumentReadVUint32 s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO Word32
return val
argumentReadVInt64 :: Argument -> IO Int64
argumentReadVInt64 s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO Int64
return val
argumentReadVUint64 :: Argument -> IO Word64
argumentReadVUint64 s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO Word64
return val
argumentReadVFloat :: Argument -> IO Float
argumentReadVFloat s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO CFloat
let val' = realToFrac val
return val'
argumentReadVDouble :: Argument -> IO Double
argumentReadVDouble s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO CDouble
let val' = realToFrac val
return val'
argumentReadVShort :: Argument -> IO Int16
argumentReadVShort s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO Int16
return val
argumentReadVUshort :: Argument -> IO Word16
argumentReadVUshort s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO Word16
return val
argumentReadVInt :: Argument -> IO Int32
argumentReadVInt s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO Int32
return val
argumentReadVUint :: Argument -> IO Word32
argumentReadVUint s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO Word32
return val
argumentReadVLong :: Argument -> IO Int64
argumentReadVLong s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO Int64
return val
argumentReadVUlong :: Argument -> IO Word64
argumentReadVUlong s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO Word64
return val
argumentReadVSsize :: Argument -> IO Int64
argumentReadVSsize s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO Int64
return val
argumentReadVSize :: Argument -> IO Word64
argumentReadVSize s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO Word64
return val
argumentReadVString :: Argument -> IO T.Text
argumentReadVString s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO CString
val' <- cstringToText val
return val'
argumentReadVPointer :: Argument -> IO (Ptr ())
argumentReadVPointer s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO (Ptr ())
return val
type family ResolveArgumentMethod (t :: Symbol) (o :: *) :: * where
ResolveArgumentMethod l o = MethodResolutionFailed l o
instance (info ~ ResolveArgumentMethod t Argument, MethodInfo info Argument p) => IsLabelProxy t (Argument -> p) where
fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveArgumentMethod t Argument, MethodInfo info Argument p) => IsLabel t (Argument -> p) where
fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif