{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.OSTree.Structs.CommitSizesEntry
(
CommitSizesEntry(..) ,
newZeroCommitSizesEntry ,
noCommitSizesEntry ,
#if defined(ENABLE_OVERLOADING)
ResolveCommitSizesEntryMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
CommitSizesEntryCopyMethodInfo ,
#endif
commitSizesEntryCopy ,
#if defined(ENABLE_OVERLOADING)
CommitSizesEntryFreeMethodInfo ,
#endif
commitSizesEntryFree ,
commitSizesEntryNew ,
#if defined(ENABLE_OVERLOADING)
commitSizesEntry_archived ,
#endif
getCommitSizesEntryArchived ,
setCommitSizesEntryArchived ,
clearCommitSizesEntryChecksum ,
#if defined(ENABLE_OVERLOADING)
commitSizesEntry_checksum ,
#endif
getCommitSizesEntryChecksum ,
setCommitSizesEntryChecksum ,
#if defined(ENABLE_OVERLOADING)
commitSizesEntry_objtype ,
#endif
getCommitSizesEntryObjtype ,
setCommitSizesEntryObjtype ,
#if defined(ENABLE_OVERLOADING)
commitSizesEntry_unpacked ,
#endif
getCommitSizesEntryUnpacked ,
setCommitSizesEntryUnpacked ,
) 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
import {-# SOURCE #-} qualified GI.OSTree.Enums as OSTree.Enums
newtype CommitSizesEntry = CommitSizesEntry (ManagedPtr CommitSizesEntry)
deriving (Eq)
foreign import ccall "ostree_commit_sizes_entry_get_type" c_ostree_commit_sizes_entry_get_type ::
IO GType
instance BoxedObject CommitSizesEntry where
boxedType _ = c_ostree_commit_sizes_entry_get_type
instance B.GValue.IsGValue CommitSizesEntry where
toGValue o = do
gtype <- c_ostree_commit_sizes_entry_get_type
B.ManagedPtr.withManagedPtr o (B.GValue.buildGValue gtype B.GValue.set_boxed)
fromGValue gv = do
ptr <- B.GValue.get_boxed gv :: IO (Ptr CommitSizesEntry)
B.ManagedPtr.newBoxed CommitSizesEntry ptr
newZeroCommitSizesEntry :: MonadIO m => m CommitSizesEntry
newZeroCommitSizesEntry = liftIO $ callocBoxedBytes 24 >>= wrapBoxed CommitSizesEntry
instance tag ~ 'AttrSet => Constructible CommitSizesEntry tag where
new _ attrs = do
o <- newZeroCommitSizesEntry
GI.Attributes.set o attrs
return o
noCommitSizesEntry :: Maybe CommitSizesEntry
noCommitSizesEntry = Nothing
getCommitSizesEntryChecksum :: MonadIO m => CommitSizesEntry -> m (Maybe T.Text)
getCommitSizesEntryChecksum s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO CString
result <- SP.convertIfNonNull val $ \val' -> do
val'' <- cstringToText val'
return val''
return result
setCommitSizesEntryChecksum :: MonadIO m => CommitSizesEntry -> CString -> m ()
setCommitSizesEntryChecksum s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (val :: CString)
clearCommitSizesEntryChecksum :: MonadIO m => CommitSizesEntry -> m ()
clearCommitSizesEntryChecksum s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (FP.nullPtr :: CString)
#if defined(ENABLE_OVERLOADING)
data CommitSizesEntryChecksumFieldInfo
instance AttrInfo CommitSizesEntryChecksumFieldInfo where
type AttrBaseTypeConstraint CommitSizesEntryChecksumFieldInfo = (~) CommitSizesEntry
type AttrAllowedOps CommitSizesEntryChecksumFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint CommitSizesEntryChecksumFieldInfo = (~) CString
type AttrTransferTypeConstraint CommitSizesEntryChecksumFieldInfo = (~)CString
type AttrTransferType CommitSizesEntryChecksumFieldInfo = CString
type AttrGetType CommitSizesEntryChecksumFieldInfo = Maybe T.Text
type AttrLabel CommitSizesEntryChecksumFieldInfo = "checksum"
type AttrOrigin CommitSizesEntryChecksumFieldInfo = CommitSizesEntry
attrGet = getCommitSizesEntryChecksum
attrSet = setCommitSizesEntryChecksum
attrConstruct = undefined
attrClear = clearCommitSizesEntryChecksum
attrTransfer _ v = do
return v
commitSizesEntry_checksum :: AttrLabelProxy "checksum"
commitSizesEntry_checksum = AttrLabelProxy
#endif
getCommitSizesEntryObjtype :: MonadIO m => CommitSizesEntry -> m OSTree.Enums.ObjectType
getCommitSizesEntryObjtype s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 4) :: IO CUInt
let val' = (toEnum . fromIntegral) val
return val'
setCommitSizesEntryObjtype :: MonadIO m => CommitSizesEntry -> OSTree.Enums.ObjectType -> m ()
setCommitSizesEntryObjtype s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = (fromIntegral . fromEnum) val
poke (ptr `plusPtr` 4) (val' :: CUInt)
#if defined(ENABLE_OVERLOADING)
data CommitSizesEntryObjtypeFieldInfo
instance AttrInfo CommitSizesEntryObjtypeFieldInfo where
type AttrBaseTypeConstraint CommitSizesEntryObjtypeFieldInfo = (~) CommitSizesEntry
type AttrAllowedOps CommitSizesEntryObjtypeFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint CommitSizesEntryObjtypeFieldInfo = (~) OSTree.Enums.ObjectType
type AttrTransferTypeConstraint CommitSizesEntryObjtypeFieldInfo = (~)OSTree.Enums.ObjectType
type AttrTransferType CommitSizesEntryObjtypeFieldInfo = OSTree.Enums.ObjectType
type AttrGetType CommitSizesEntryObjtypeFieldInfo = OSTree.Enums.ObjectType
type AttrLabel CommitSizesEntryObjtypeFieldInfo = "objtype"
type AttrOrigin CommitSizesEntryObjtypeFieldInfo = CommitSizesEntry
attrGet = getCommitSizesEntryObjtype
attrSet = setCommitSizesEntryObjtype
attrConstruct = undefined
attrClear = undefined
attrTransfer _ v = do
return v
commitSizesEntry_objtype :: AttrLabelProxy "objtype"
commitSizesEntry_objtype = AttrLabelProxy
#endif
getCommitSizesEntryUnpacked :: MonadIO m => CommitSizesEntry -> m Word64
getCommitSizesEntryUnpacked s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 8) :: IO Word64
return val
setCommitSizesEntryUnpacked :: MonadIO m => CommitSizesEntry -> Word64 -> m ()
setCommitSizesEntryUnpacked s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 8) (val :: Word64)
#if defined(ENABLE_OVERLOADING)
data CommitSizesEntryUnpackedFieldInfo
instance AttrInfo CommitSizesEntryUnpackedFieldInfo where
type AttrBaseTypeConstraint CommitSizesEntryUnpackedFieldInfo = (~) CommitSizesEntry
type AttrAllowedOps CommitSizesEntryUnpackedFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint CommitSizesEntryUnpackedFieldInfo = (~) Word64
type AttrTransferTypeConstraint CommitSizesEntryUnpackedFieldInfo = (~)Word64
type AttrTransferType CommitSizesEntryUnpackedFieldInfo = Word64
type AttrGetType CommitSizesEntryUnpackedFieldInfo = Word64
type AttrLabel CommitSizesEntryUnpackedFieldInfo = "unpacked"
type AttrOrigin CommitSizesEntryUnpackedFieldInfo = CommitSizesEntry
attrGet = getCommitSizesEntryUnpacked
attrSet = setCommitSizesEntryUnpacked
attrConstruct = undefined
attrClear = undefined
attrTransfer _ v = do
return v
commitSizesEntry_unpacked :: AttrLabelProxy "unpacked"
commitSizesEntry_unpacked = AttrLabelProxy
#endif
getCommitSizesEntryArchived :: MonadIO m => CommitSizesEntry -> m Word64
getCommitSizesEntryArchived s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 16) :: IO Word64
return val
setCommitSizesEntryArchived :: MonadIO m => CommitSizesEntry -> Word64 -> m ()
setCommitSizesEntryArchived s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 16) (val :: Word64)
#if defined(ENABLE_OVERLOADING)
data CommitSizesEntryArchivedFieldInfo
instance AttrInfo CommitSizesEntryArchivedFieldInfo where
type AttrBaseTypeConstraint CommitSizesEntryArchivedFieldInfo = (~) CommitSizesEntry
type AttrAllowedOps CommitSizesEntryArchivedFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint CommitSizesEntryArchivedFieldInfo = (~) Word64
type AttrTransferTypeConstraint CommitSizesEntryArchivedFieldInfo = (~)Word64
type AttrTransferType CommitSizesEntryArchivedFieldInfo = Word64
type AttrGetType CommitSizesEntryArchivedFieldInfo = Word64
type AttrLabel CommitSizesEntryArchivedFieldInfo = "archived"
type AttrOrigin CommitSizesEntryArchivedFieldInfo = CommitSizesEntry
attrGet = getCommitSizesEntryArchived
attrSet = setCommitSizesEntryArchived
attrConstruct = undefined
attrClear = undefined
attrTransfer _ v = do
return v
commitSizesEntry_archived :: AttrLabelProxy "archived"
commitSizesEntry_archived = AttrLabelProxy
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList CommitSizesEntry
type instance O.AttributeList CommitSizesEntry = CommitSizesEntryAttributeList
type CommitSizesEntryAttributeList = ('[ '("checksum", CommitSizesEntryChecksumFieldInfo), '("objtype", CommitSizesEntryObjtypeFieldInfo), '("unpacked", CommitSizesEntryUnpackedFieldInfo), '("archived", CommitSizesEntryArchivedFieldInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "ostree_commit_sizes_entry_new" ostree_commit_sizes_entry_new ::
CString ->
CUInt ->
Word64 ->
Word64 ->
IO (Ptr CommitSizesEntry)
commitSizesEntryNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> OSTree.Enums.ObjectType
-> Word64
-> Word64
-> m (Maybe CommitSizesEntry)
commitSizesEntryNew checksum objtype unpacked archived = liftIO $ do
checksum' <- textToCString checksum
let objtype' = (fromIntegral . fromEnum) objtype
result <- ostree_commit_sizes_entry_new checksum' objtype' unpacked archived
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (wrapBoxed CommitSizesEntry) result'
return result''
freeMem checksum'
return maybeResult
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "ostree_commit_sizes_entry_copy" ostree_commit_sizes_entry_copy ::
Ptr CommitSizesEntry ->
IO (Ptr CommitSizesEntry)
commitSizesEntryCopy ::
(B.CallStack.HasCallStack, MonadIO m) =>
CommitSizesEntry
-> m (Maybe CommitSizesEntry)
commitSizesEntryCopy entry = liftIO $ do
entry' <- unsafeManagedPtrGetPtr entry
result <- ostree_commit_sizes_entry_copy entry'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (wrapBoxed CommitSizesEntry) result'
return result''
touchManagedPtr entry
return maybeResult
#if defined(ENABLE_OVERLOADING)
data CommitSizesEntryCopyMethodInfo
instance (signature ~ (m (Maybe CommitSizesEntry)), MonadIO m) => O.MethodInfo CommitSizesEntryCopyMethodInfo CommitSizesEntry signature where
overloadedMethod = commitSizesEntryCopy
#endif
foreign import ccall "ostree_commit_sizes_entry_free" ostree_commit_sizes_entry_free ::
Ptr CommitSizesEntry ->
IO ()
commitSizesEntryFree ::
(B.CallStack.HasCallStack, MonadIO m) =>
CommitSizesEntry
-> m ()
commitSizesEntryFree entry = liftIO $ do
entry' <- B.ManagedPtr.disownBoxed entry
ostree_commit_sizes_entry_free entry'
touchManagedPtr entry
return ()
#if defined(ENABLE_OVERLOADING)
data CommitSizesEntryFreeMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo CommitSizesEntryFreeMethodInfo CommitSizesEntry signature where
overloadedMethod = commitSizesEntryFree
#endif
#if defined(ENABLE_OVERLOADING)
type family ResolveCommitSizesEntryMethod (t :: Symbol) (o :: *) :: * where
ResolveCommitSizesEntryMethod "copy" o = CommitSizesEntryCopyMethodInfo
ResolveCommitSizesEntryMethod "free" o = CommitSizesEntryFreeMethodInfo
ResolveCommitSizesEntryMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveCommitSizesEntryMethod t CommitSizesEntry, O.MethodInfo info CommitSizesEntry p) => OL.IsLabel t (CommitSizesEntry -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod @info
#else
fromLabel _ = O.overloadedMethod @info
#endif
#endif