gi-glib-0.2.46.14: GI/GLib/Unions/TokenValue.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.GLib.Unions.TokenValue
(
-- * Exported types
TokenValue(..) ,
newZeroTokenValue ,
noTokenValue ,
-- * Properties
-- ** VBinary
tokenValueReadVBinary ,
tokenValueVBinary ,
tokenValueWriteVBinary ,
-- ** VChar
tokenValueReadVChar ,
tokenValueVChar ,
tokenValueWriteVChar ,
-- ** VComment
tokenValueClearVComment ,
tokenValueReadVComment ,
tokenValueVComment ,
tokenValueWriteVComment ,
-- ** VError
tokenValueReadVError ,
tokenValueVError ,
tokenValueWriteVError ,
-- ** VFloat
tokenValueReadVFloat ,
tokenValueVFloat ,
tokenValueWriteVFloat ,
-- ** VHex
tokenValueReadVHex ,
tokenValueVHex ,
tokenValueWriteVHex ,
-- ** VIdentifier
tokenValueClearVIdentifier ,
tokenValueReadVIdentifier ,
tokenValueVIdentifier ,
tokenValueWriteVIdentifier ,
-- ** VInt
tokenValueReadVInt ,
tokenValueVInt ,
tokenValueWriteVInt ,
-- ** VInt64
tokenValueReadVInt64 ,
tokenValueVInt64 ,
tokenValueWriteVInt64 ,
-- ** VOctal
tokenValueReadVOctal ,
tokenValueVOctal ,
tokenValueWriteVOctal ,
-- ** VString
tokenValueClearVString ,
tokenValueReadVString ,
tokenValueVString ,
tokenValueWriteVString ,
-- ** VSymbol
tokenValueClearVSymbol ,
tokenValueReadVSymbol ,
tokenValueVSymbol ,
tokenValueWriteVSymbol ,
) 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.GLib.Types
import GI.GLib.Callbacks
newtype TokenValue = TokenValue (ForeignPtr TokenValue)
-- | Construct a `TokenValue` struct initialized to zero.
newZeroTokenValue :: MonadIO m => m TokenValue
newZeroTokenValue = liftIO $ callocBytes 8 >>= wrapPtr TokenValue
instance tag ~ 'AttrSet => Constructible TokenValue tag where
new _ attrs = do
o <- newZeroTokenValue
GI.Attributes.set o attrs
return o
noTokenValue :: Maybe TokenValue
noTokenValue = Nothing
tokenValueReadVSymbol :: MonadIO m => TokenValue -> m (Ptr ())
tokenValueReadVSymbol s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO (Ptr ())
return val
tokenValueWriteVSymbol :: MonadIO m => TokenValue -> Ptr () -> m ()
tokenValueWriteVSymbol s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (val :: Ptr ())
tokenValueClearVSymbol :: MonadIO m => TokenValue -> m ()
tokenValueClearVSymbol s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (nullPtr :: Ptr ())
data TokenValueVSymbolFieldInfo
instance AttrInfo TokenValueVSymbolFieldInfo where
type AttrAllowedOps TokenValueVSymbolFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint TokenValueVSymbolFieldInfo = (~) (Ptr ())
type AttrBaseTypeConstraint TokenValueVSymbolFieldInfo = (~) TokenValue
type AttrGetType TokenValueVSymbolFieldInfo = Ptr ()
type AttrLabel TokenValueVSymbolFieldInfo = "v_symbol"
attrGet _ = tokenValueReadVSymbol
attrSet _ = tokenValueWriteVSymbol
attrConstruct = undefined
attrClear _ = tokenValueClearVSymbol
tokenValueVSymbol :: AttrLabelProxy "vSymbol"
tokenValueVSymbol = AttrLabelProxy
tokenValueReadVIdentifier :: MonadIO m => TokenValue -> m (Maybe T.Text)
tokenValueReadVIdentifier s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO CString
result <- convertIfNonNull val $ \val' -> do
val'' <- cstringToText val'
return val''
return result
tokenValueWriteVIdentifier :: MonadIO m => TokenValue -> CString -> m ()
tokenValueWriteVIdentifier s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (val :: CString)
tokenValueClearVIdentifier :: MonadIO m => TokenValue -> m ()
tokenValueClearVIdentifier s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (nullPtr :: CString)
data TokenValueVIdentifierFieldInfo
instance AttrInfo TokenValueVIdentifierFieldInfo where
type AttrAllowedOps TokenValueVIdentifierFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint TokenValueVIdentifierFieldInfo = (~) CString
type AttrBaseTypeConstraint TokenValueVIdentifierFieldInfo = (~) TokenValue
type AttrGetType TokenValueVIdentifierFieldInfo = Maybe T.Text
type AttrLabel TokenValueVIdentifierFieldInfo = "v_identifier"
attrGet _ = tokenValueReadVIdentifier
attrSet _ = tokenValueWriteVIdentifier
attrConstruct = undefined
attrClear _ = tokenValueClearVIdentifier
tokenValueVIdentifier :: AttrLabelProxy "vIdentifier"
tokenValueVIdentifier = AttrLabelProxy
tokenValueReadVBinary :: MonadIO m => TokenValue -> m CULong
tokenValueReadVBinary s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO CULong
return val
tokenValueWriteVBinary :: MonadIO m => TokenValue -> CULong -> m ()
tokenValueWriteVBinary s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (val :: CULong)
data TokenValueVBinaryFieldInfo
instance AttrInfo TokenValueVBinaryFieldInfo where
type AttrAllowedOps TokenValueVBinaryFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint TokenValueVBinaryFieldInfo = (~) CULong
type AttrBaseTypeConstraint TokenValueVBinaryFieldInfo = (~) TokenValue
type AttrGetType TokenValueVBinaryFieldInfo = CULong
type AttrLabel TokenValueVBinaryFieldInfo = "v_binary"
attrGet _ = tokenValueReadVBinary
attrSet _ = tokenValueWriteVBinary
attrConstruct = undefined
attrClear _ = undefined
tokenValueVBinary :: AttrLabelProxy "vBinary"
tokenValueVBinary = AttrLabelProxy
tokenValueReadVOctal :: MonadIO m => TokenValue -> m CULong
tokenValueReadVOctal s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO CULong
return val
tokenValueWriteVOctal :: MonadIO m => TokenValue -> CULong -> m ()
tokenValueWriteVOctal s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (val :: CULong)
data TokenValueVOctalFieldInfo
instance AttrInfo TokenValueVOctalFieldInfo where
type AttrAllowedOps TokenValueVOctalFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint TokenValueVOctalFieldInfo = (~) CULong
type AttrBaseTypeConstraint TokenValueVOctalFieldInfo = (~) TokenValue
type AttrGetType TokenValueVOctalFieldInfo = CULong
type AttrLabel TokenValueVOctalFieldInfo = "v_octal"
attrGet _ = tokenValueReadVOctal
attrSet _ = tokenValueWriteVOctal
attrConstruct = undefined
attrClear _ = undefined
tokenValueVOctal :: AttrLabelProxy "vOctal"
tokenValueVOctal = AttrLabelProxy
tokenValueReadVInt :: MonadIO m => TokenValue -> m CULong
tokenValueReadVInt s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO CULong
return val
tokenValueWriteVInt :: MonadIO m => TokenValue -> CULong -> m ()
tokenValueWriteVInt s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (val :: CULong)
data TokenValueVIntFieldInfo
instance AttrInfo TokenValueVIntFieldInfo where
type AttrAllowedOps TokenValueVIntFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint TokenValueVIntFieldInfo = (~) CULong
type AttrBaseTypeConstraint TokenValueVIntFieldInfo = (~) TokenValue
type AttrGetType TokenValueVIntFieldInfo = CULong
type AttrLabel TokenValueVIntFieldInfo = "v_int"
attrGet _ = tokenValueReadVInt
attrSet _ = tokenValueWriteVInt
attrConstruct = undefined
attrClear _ = undefined
tokenValueVInt :: AttrLabelProxy "vInt"
tokenValueVInt = AttrLabelProxy
tokenValueReadVInt64 :: MonadIO m => TokenValue -> m Word64
tokenValueReadVInt64 s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO Word64
return val
tokenValueWriteVInt64 :: MonadIO m => TokenValue -> Word64 -> m ()
tokenValueWriteVInt64 s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (val :: Word64)
data TokenValueVInt64FieldInfo
instance AttrInfo TokenValueVInt64FieldInfo where
type AttrAllowedOps TokenValueVInt64FieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint TokenValueVInt64FieldInfo = (~) Word64
type AttrBaseTypeConstraint TokenValueVInt64FieldInfo = (~) TokenValue
type AttrGetType TokenValueVInt64FieldInfo = Word64
type AttrLabel TokenValueVInt64FieldInfo = "v_int64"
attrGet _ = tokenValueReadVInt64
attrSet _ = tokenValueWriteVInt64
attrConstruct = undefined
attrClear _ = undefined
tokenValueVInt64 :: AttrLabelProxy "vInt64"
tokenValueVInt64 = AttrLabelProxy
tokenValueReadVFloat :: MonadIO m => TokenValue -> m Double
tokenValueReadVFloat s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO CDouble
let val' = realToFrac val
return val'
tokenValueWriteVFloat :: MonadIO m => TokenValue -> Double -> m ()
tokenValueWriteVFloat s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = realToFrac val
poke (ptr `plusPtr` 0) (val' :: CDouble)
data TokenValueVFloatFieldInfo
instance AttrInfo TokenValueVFloatFieldInfo where
type AttrAllowedOps TokenValueVFloatFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint TokenValueVFloatFieldInfo = (~) Double
type AttrBaseTypeConstraint TokenValueVFloatFieldInfo = (~) TokenValue
type AttrGetType TokenValueVFloatFieldInfo = Double
type AttrLabel TokenValueVFloatFieldInfo = "v_float"
attrGet _ = tokenValueReadVFloat
attrSet _ = tokenValueWriteVFloat
attrConstruct = undefined
attrClear _ = undefined
tokenValueVFloat :: AttrLabelProxy "vFloat"
tokenValueVFloat = AttrLabelProxy
tokenValueReadVHex :: MonadIO m => TokenValue -> m CULong
tokenValueReadVHex s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO CULong
return val
tokenValueWriteVHex :: MonadIO m => TokenValue -> CULong -> m ()
tokenValueWriteVHex s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (val :: CULong)
data TokenValueVHexFieldInfo
instance AttrInfo TokenValueVHexFieldInfo where
type AttrAllowedOps TokenValueVHexFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint TokenValueVHexFieldInfo = (~) CULong
type AttrBaseTypeConstraint TokenValueVHexFieldInfo = (~) TokenValue
type AttrGetType TokenValueVHexFieldInfo = CULong
type AttrLabel TokenValueVHexFieldInfo = "v_hex"
attrGet _ = tokenValueReadVHex
attrSet _ = tokenValueWriteVHex
attrConstruct = undefined
attrClear _ = undefined
tokenValueVHex :: AttrLabelProxy "vHex"
tokenValueVHex = AttrLabelProxy
tokenValueReadVString :: MonadIO m => TokenValue -> m (Maybe T.Text)
tokenValueReadVString s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO CString
result <- convertIfNonNull val $ \val' -> do
val'' <- cstringToText val'
return val''
return result
tokenValueWriteVString :: MonadIO m => TokenValue -> CString -> m ()
tokenValueWriteVString s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (val :: CString)
tokenValueClearVString :: MonadIO m => TokenValue -> m ()
tokenValueClearVString s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (nullPtr :: CString)
data TokenValueVStringFieldInfo
instance AttrInfo TokenValueVStringFieldInfo where
type AttrAllowedOps TokenValueVStringFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint TokenValueVStringFieldInfo = (~) CString
type AttrBaseTypeConstraint TokenValueVStringFieldInfo = (~) TokenValue
type AttrGetType TokenValueVStringFieldInfo = Maybe T.Text
type AttrLabel TokenValueVStringFieldInfo = "v_string"
attrGet _ = tokenValueReadVString
attrSet _ = tokenValueWriteVString
attrConstruct = undefined
attrClear _ = tokenValueClearVString
tokenValueVString :: AttrLabelProxy "vString"
tokenValueVString = AttrLabelProxy
tokenValueReadVComment :: MonadIO m => TokenValue -> m (Maybe T.Text)
tokenValueReadVComment s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO CString
result <- convertIfNonNull val $ \val' -> do
val'' <- cstringToText val'
return val''
return result
tokenValueWriteVComment :: MonadIO m => TokenValue -> CString -> m ()
tokenValueWriteVComment s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (val :: CString)
tokenValueClearVComment :: MonadIO m => TokenValue -> m ()
tokenValueClearVComment s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (nullPtr :: CString)
data TokenValueVCommentFieldInfo
instance AttrInfo TokenValueVCommentFieldInfo where
type AttrAllowedOps TokenValueVCommentFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint TokenValueVCommentFieldInfo = (~) CString
type AttrBaseTypeConstraint TokenValueVCommentFieldInfo = (~) TokenValue
type AttrGetType TokenValueVCommentFieldInfo = Maybe T.Text
type AttrLabel TokenValueVCommentFieldInfo = "v_comment"
attrGet _ = tokenValueReadVComment
attrSet _ = tokenValueWriteVComment
attrConstruct = undefined
attrClear _ = tokenValueClearVComment
tokenValueVComment :: AttrLabelProxy "vComment"
tokenValueVComment = AttrLabelProxy
tokenValueReadVChar :: MonadIO m => TokenValue -> m Word8
tokenValueReadVChar s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO Word8
return val
tokenValueWriteVChar :: MonadIO m => TokenValue -> Word8 -> m ()
tokenValueWriteVChar s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (val :: Word8)
data TokenValueVCharFieldInfo
instance AttrInfo TokenValueVCharFieldInfo where
type AttrAllowedOps TokenValueVCharFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint TokenValueVCharFieldInfo = (~) Word8
type AttrBaseTypeConstraint TokenValueVCharFieldInfo = (~) TokenValue
type AttrGetType TokenValueVCharFieldInfo = Word8
type AttrLabel TokenValueVCharFieldInfo = "v_char"
attrGet _ = tokenValueReadVChar
attrSet _ = tokenValueWriteVChar
attrConstruct = undefined
attrClear _ = undefined
tokenValueVChar :: AttrLabelProxy "vChar"
tokenValueVChar = AttrLabelProxy
tokenValueReadVError :: MonadIO m => TokenValue -> m Word32
tokenValueReadVError s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO Word32
return val
tokenValueWriteVError :: MonadIO m => TokenValue -> Word32 -> m ()
tokenValueWriteVError s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (val :: Word32)
data TokenValueVErrorFieldInfo
instance AttrInfo TokenValueVErrorFieldInfo where
type AttrAllowedOps TokenValueVErrorFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint TokenValueVErrorFieldInfo = (~) Word32
type AttrBaseTypeConstraint TokenValueVErrorFieldInfo = (~) TokenValue
type AttrGetType TokenValueVErrorFieldInfo = Word32
type AttrLabel TokenValueVErrorFieldInfo = "v_error"
attrGet _ = tokenValueReadVError
attrSet _ = tokenValueWriteVError
attrConstruct = undefined
attrClear _ = undefined
tokenValueVError :: AttrLabelProxy "vError"
tokenValueVError = AttrLabelProxy
type instance AttributeList TokenValue = TokenValueAttributeList
type TokenValueAttributeList = ('[ '("vSymbol", TokenValueVSymbolFieldInfo), '("vIdentifier", TokenValueVIdentifierFieldInfo), '("vBinary", TokenValueVBinaryFieldInfo), '("vOctal", TokenValueVOctalFieldInfo), '("vInt", TokenValueVIntFieldInfo), '("vInt64", TokenValueVInt64FieldInfo), '("vFloat", TokenValueVFloatFieldInfo), '("vHex", TokenValueVHexFieldInfo), '("vString", TokenValueVStringFieldInfo), '("vComment", TokenValueVCommentFieldInfo), '("vChar", TokenValueVCharFieldInfo), '("vError", TokenValueVErrorFieldInfo)] :: [(Symbol, *)])
type family ResolveTokenValueMethod (t :: Symbol) (o :: *) :: * where
ResolveTokenValueMethod l o = MethodResolutionFailed l o
instance (info ~ ResolveTokenValueMethod t TokenValue, MethodInfo info TokenValue p) => IsLabelProxy t (TokenValue -> p) where
fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveTokenValueMethod t TokenValue, MethodInfo info TokenValue p) => IsLabel t (TokenValue -> p) where
fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif