{- |
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_(..)                   ,
    noValue_Data_Union_                     ,


 -- * Properties
-- ** VDouble
    value_Data_Union_ReadVDouble            ,


-- ** VFloat
    value_Data_Union_ReadVFloat             ,


-- ** VInt
    value_Data_Union_ReadVInt               ,


-- ** VInt64
    value_Data_Union_ReadVInt64             ,


-- ** VLong
    value_Data_Union_ReadVLong              ,


-- ** VPointer
    value_Data_Union_ReadVPointer           ,


-- ** VUint
    value_Data_Union_ReadVUint              ,


-- ** VUint64
    value_Data_Union_ReadVUint64            ,


-- ** VUlong
    value_Data_Union_ReadVUlong             ,




    ) 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.GObject.Types
import GI.GObject.Callbacks

newtype Value_Data_Union_ = Value_Data_Union_ (ForeignPtr Value_Data_Union_)
noValue_Data_Union_ :: Maybe Value_Data_Union_
noValue_Data_Union_ = Nothing

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

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

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

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

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

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

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

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

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