{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.GLib.Structs.LogField
(
LogField(..) ,
newZeroLogField ,
noLogField ,
#if defined(ENABLE_OVERLOADING)
ResolveLogFieldMethod ,
#endif
clearLogFieldKey ,
getLogFieldKey ,
#if defined(ENABLE_OVERLOADING)
logField_key ,
#endif
setLogFieldKey ,
getLogFieldLength ,
#if defined(ENABLE_OVERLOADING)
logField_length ,
#endif
setLogFieldLength ,
clearLogFieldValue ,
getLogFieldValue ,
#if defined(ENABLE_OVERLOADING)
logField_value ,
#endif
setLogFieldValue ,
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.GI.Base.Signals as B.Signals
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
newtype LogField = LogField (ManagedPtr LogField)
deriving (LogField -> LogField -> Bool
(LogField -> LogField -> Bool)
-> (LogField -> LogField -> Bool) -> Eq LogField
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: LogField -> LogField -> Bool
$c/= :: LogField -> LogField -> Bool
== :: LogField -> LogField -> Bool
$c== :: LogField -> LogField -> Bool
Eq)
instance WrappedPtr LogField where
wrappedPtrCalloc :: IO (Ptr LogField)
wrappedPtrCalloc = Int -> IO (Ptr LogField)
forall a. Int -> IO (Ptr a)
callocBytes 24
wrappedPtrCopy :: LogField -> IO LogField
wrappedPtrCopy = \p :: LogField
p -> LogField -> (Ptr LogField -> IO LogField) -> IO LogField
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr LogField
p (Int -> Ptr LogField -> IO (Ptr LogField)
forall a. WrappedPtr a => Int -> Ptr a -> IO (Ptr a)
copyBytes 24 (Ptr LogField -> IO (Ptr LogField))
-> (Ptr LogField -> IO LogField) -> Ptr LogField -> IO LogField
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> (ManagedPtr LogField -> LogField) -> Ptr LogField -> IO LogField
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapPtr ManagedPtr LogField -> LogField
LogField)
wrappedPtrFree :: Maybe (GDestroyNotify LogField)
wrappedPtrFree = GDestroyNotify LogField -> Maybe (GDestroyNotify LogField)
forall a. a -> Maybe a
Just GDestroyNotify LogField
forall a. FunPtr (Ptr a -> IO ())
ptr_to_g_free
newZeroLogField :: MonadIO m => m LogField
newZeroLogField :: m LogField
newZeroLogField = IO LogField -> m LogField
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO LogField -> m LogField) -> IO LogField -> m LogField
forall a b. (a -> b) -> a -> b
$ IO (Ptr LogField)
forall a. WrappedPtr a => IO (Ptr a)
wrappedPtrCalloc IO (Ptr LogField) -> (Ptr LogField -> IO LogField) -> IO LogField
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= (ManagedPtr LogField -> LogField) -> Ptr LogField -> IO LogField
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapPtr ManagedPtr LogField -> LogField
LogField
instance tag ~ 'AttrSet => Constructible LogField tag where
new :: (ManagedPtr LogField -> LogField)
-> [AttrOp LogField tag] -> m LogField
new _ attrs :: [AttrOp LogField tag]
attrs = do
LogField
o <- m LogField
forall (m :: * -> *). MonadIO m => m LogField
newZeroLogField
LogField -> [AttrOp LogField 'AttrSet] -> m ()
forall o (m :: * -> *).
MonadIO m =>
o -> [AttrOp o 'AttrSet] -> m ()
GI.Attributes.set LogField
o [AttrOp LogField tag]
[AttrOp LogField 'AttrSet]
attrs
LogField -> m LogField
forall (m :: * -> *) a. Monad m => a -> m a
return LogField
o
noLogField :: Maybe LogField
noLogField :: Maybe LogField
noLogField = Maybe LogField
forall a. Maybe a
Nothing
getLogFieldKey :: MonadIO m => LogField -> m (Maybe T.Text)
getLogFieldKey :: LogField -> m (Maybe Text)
getLogFieldKey s :: LogField
s = IO (Maybe Text) -> m (Maybe Text)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Text) -> m (Maybe Text))
-> IO (Maybe Text) -> m (Maybe Text)
forall a b. (a -> b) -> a -> b
$ LogField -> (Ptr LogField -> IO (Maybe Text)) -> IO (Maybe Text)
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr LogField
s ((Ptr LogField -> IO (Maybe Text)) -> IO (Maybe Text))
-> (Ptr LogField -> IO (Maybe Text)) -> IO (Maybe Text)
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr LogField
ptr -> do
CString
val <- Ptr CString -> IO CString
forall a. Storable a => Ptr a -> IO a
peek (Ptr LogField
ptr Ptr LogField -> Int -> Ptr CString
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 0) :: IO CString
Maybe Text
result <- CString -> (CString -> IO Text) -> IO (Maybe Text)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
SP.convertIfNonNull CString
val ((CString -> IO Text) -> IO (Maybe Text))
-> (CString -> IO Text) -> IO (Maybe Text)
forall a b. (a -> b) -> a -> b
$ \val' :: CString
val' -> do
Text
val'' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
val'
Text -> IO Text
forall (m :: * -> *) a. Monad m => a -> m a
return Text
val''
Maybe Text -> IO (Maybe Text)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Text
result
setLogFieldKey :: MonadIO m => LogField -> CString -> m ()
setLogFieldKey :: LogField -> CString -> m ()
setLogFieldKey s :: LogField
s val :: CString
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ LogField -> (Ptr LogField -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr LogField
s ((Ptr LogField -> IO ()) -> IO ())
-> (Ptr LogField -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr LogField
ptr -> do
Ptr CString -> CString -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr LogField
ptr Ptr LogField -> Int -> Ptr CString
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 0) (CString
val :: CString)
clearLogFieldKey :: MonadIO m => LogField -> m ()
clearLogFieldKey :: LogField -> m ()
clearLogFieldKey s :: LogField
s = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ LogField -> (Ptr LogField -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr LogField
s ((Ptr LogField -> IO ()) -> IO ())
-> (Ptr LogField -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr LogField
ptr -> do
Ptr CString -> CString -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr LogField
ptr Ptr LogField -> Int -> Ptr CString
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 0) (CString
forall a. Ptr a
FP.nullPtr :: CString)
#if defined(ENABLE_OVERLOADING)
data LogFieldKeyFieldInfo
instance AttrInfo LogFieldKeyFieldInfo where
type AttrBaseTypeConstraint LogFieldKeyFieldInfo = (~) LogField
type AttrAllowedOps LogFieldKeyFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint LogFieldKeyFieldInfo = (~) CString
type AttrTransferTypeConstraint LogFieldKeyFieldInfo = (~)CString
type AttrTransferType LogFieldKeyFieldInfo = CString
type AttrGetType LogFieldKeyFieldInfo = Maybe T.Text
type AttrLabel LogFieldKeyFieldInfo = "key"
type AttrOrigin LogFieldKeyFieldInfo = LogField
attrGet = getLogFieldKey
attrSet = setLogFieldKey
attrConstruct = undefined
attrClear = clearLogFieldKey
attrTransfer _ v = do
return v
logField_key :: AttrLabelProxy "key"
logField_key = AttrLabelProxy
#endif
getLogFieldValue :: MonadIO m => LogField -> m (Ptr ())
getLogFieldValue :: LogField -> m (Ptr ())
getLogFieldValue s :: LogField
s = IO (Ptr ()) -> m (Ptr ())
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Ptr ()) -> m (Ptr ())) -> IO (Ptr ()) -> m (Ptr ())
forall a b. (a -> b) -> a -> b
$ LogField -> (Ptr LogField -> IO (Ptr ())) -> IO (Ptr ())
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr LogField
s ((Ptr LogField -> IO (Ptr ())) -> IO (Ptr ()))
-> (Ptr LogField -> IO (Ptr ())) -> IO (Ptr ())
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr LogField
ptr -> do
Ptr ()
val <- Ptr (Ptr ()) -> IO (Ptr ())
forall a. Storable a => Ptr a -> IO a
peek (Ptr LogField
ptr Ptr LogField -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 8) :: IO (Ptr ())
Ptr () -> IO (Ptr ())
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr ()
val
setLogFieldValue :: MonadIO m => LogField -> Ptr () -> m ()
setLogFieldValue :: LogField -> Ptr () -> m ()
setLogFieldValue s :: LogField
s val :: Ptr ()
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ LogField -> (Ptr LogField -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr LogField
s ((Ptr LogField -> IO ()) -> IO ())
-> (Ptr LogField -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr LogField
ptr -> do
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr LogField
ptr Ptr LogField -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 8) (Ptr ()
val :: Ptr ())
clearLogFieldValue :: MonadIO m => LogField -> m ()
clearLogFieldValue :: LogField -> m ()
clearLogFieldValue s :: LogField
s = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ LogField -> (Ptr LogField -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr LogField
s ((Ptr LogField -> IO ()) -> IO ())
-> (Ptr LogField -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr LogField
ptr -> do
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr LogField
ptr Ptr LogField -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 8) (Ptr ()
forall a. Ptr a
FP.nullPtr :: Ptr ())
#if defined(ENABLE_OVERLOADING)
data LogFieldValueFieldInfo
instance AttrInfo LogFieldValueFieldInfo where
type AttrBaseTypeConstraint LogFieldValueFieldInfo = (~) LogField
type AttrAllowedOps LogFieldValueFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint LogFieldValueFieldInfo = (~) (Ptr ())
type AttrTransferTypeConstraint LogFieldValueFieldInfo = (~)(Ptr ())
type AttrTransferType LogFieldValueFieldInfo = (Ptr ())
type AttrGetType LogFieldValueFieldInfo = Ptr ()
type AttrLabel LogFieldValueFieldInfo = "value"
type AttrOrigin LogFieldValueFieldInfo = LogField
attrGet = getLogFieldValue
attrSet = setLogFieldValue
attrConstruct = undefined
attrClear = clearLogFieldValue
attrTransfer _ v = do
return v
logField_value :: AttrLabelProxy "value"
logField_value = AttrLabelProxy
#endif
getLogFieldLength :: MonadIO m => LogField -> m Int64
getLogFieldLength :: LogField -> m Int64
getLogFieldLength s :: LogField
s = IO Int64 -> m Int64
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int64 -> m Int64) -> IO Int64 -> m Int64
forall a b. (a -> b) -> a -> b
$ LogField -> (Ptr LogField -> IO Int64) -> IO Int64
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr LogField
s ((Ptr LogField -> IO Int64) -> IO Int64)
-> (Ptr LogField -> IO Int64) -> IO Int64
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr LogField
ptr -> do
Int64
val <- Ptr Int64 -> IO Int64
forall a. Storable a => Ptr a -> IO a
peek (Ptr LogField
ptr Ptr LogField -> Int -> Ptr Int64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16) :: IO Int64
Int64 -> IO Int64
forall (m :: * -> *) a. Monad m => a -> m a
return Int64
val
setLogFieldLength :: MonadIO m => LogField -> Int64 -> m ()
setLogFieldLength :: LogField -> Int64 -> m ()
setLogFieldLength s :: LogField
s val :: Int64
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ LogField -> (Ptr LogField -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr LogField
s ((Ptr LogField -> IO ()) -> IO ())
-> (Ptr LogField -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr LogField
ptr -> do
Ptr Int64 -> Int64 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr LogField
ptr Ptr LogField -> Int -> Ptr Int64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16) (Int64
val :: Int64)
#if defined(ENABLE_OVERLOADING)
data LogFieldLengthFieldInfo
instance AttrInfo LogFieldLengthFieldInfo where
type AttrBaseTypeConstraint LogFieldLengthFieldInfo = (~) LogField
type AttrAllowedOps LogFieldLengthFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint LogFieldLengthFieldInfo = (~) Int64
type AttrTransferTypeConstraint LogFieldLengthFieldInfo = (~)Int64
type AttrTransferType LogFieldLengthFieldInfo = Int64
type AttrGetType LogFieldLengthFieldInfo = Int64
type AttrLabel LogFieldLengthFieldInfo = "length"
type AttrOrigin LogFieldLengthFieldInfo = LogField
attrGet = getLogFieldLength
attrSet = setLogFieldLength
attrConstruct = undefined
attrClear = undefined
attrTransfer _ v = do
return v
logField_length :: AttrLabelProxy "length"
logField_length = AttrLabelProxy
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList LogField
type instance O.AttributeList LogField = LogFieldAttributeList
type LogFieldAttributeList = ('[ '("key", LogFieldKeyFieldInfo), '("value", LogFieldValueFieldInfo), '("length", LogFieldLengthFieldInfo)] :: [(Symbol, *)])
#endif
#if defined(ENABLE_OVERLOADING)
type family ResolveLogFieldMethod (t :: Symbol) (o :: *) :: * where
ResolveLogFieldMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveLogFieldMethod t LogField, O.MethodInfo info LogField p) => OL.IsLabel t (LogField -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod @info
#else
fromLabel _ = O.overloadedMethod @info
#endif
#endif