{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- An extensible options structure controlling checkout.  Ensure that
-- you have entirely zeroed the structure, then set just the desired
-- options.  This is used by 'GI.OSTree.Objects.Repo.repoCheckoutAt' which
-- supercedes previous separate enumeration usage in
-- 'GI.OSTree.Objects.Repo.repoCheckoutTree' and @/ostree_repo_checkout_tree_at()/@.

#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif

module GI.OSTree.Structs.RepoCheckoutAtOptions
    ( 

-- * Exported types
    RepoCheckoutAtOptions(..)               ,
    newZeroRepoCheckoutAtOptions            ,
    noRepoCheckoutAtOptions                 ,


 -- * Methods
-- ** Overloaded methods #method:Overloaded methods#

#if defined(ENABLE_OVERLOADING)
    ResolveRepoCheckoutAtOptionsMethod      ,
#endif


-- ** setDevino #method:setDevino#

#if defined(ENABLE_OVERLOADING)
    RepoCheckoutAtOptionsSetDevinoMethodInfo,
#endif
    repoCheckoutAtOptionsSetDevino          ,




 -- * Properties
-- ** bareuseronlyDirs #attr:bareuseronlyDirs#
-- | /No description available in the introspection data./

    getRepoCheckoutAtOptionsBareuseronlyDirs,
#if defined(ENABLE_OVERLOADING)
    repoCheckoutAtOptions_bareuseronlyDirs  ,
#endif
    setRepoCheckoutAtOptionsBareuseronlyDirs,


-- ** devinoToCsumCache #attr:devinoToCsumCache#
-- | /No description available in the introspection data./

    clearRepoCheckoutAtOptionsDevinoToCsumCache,
    getRepoCheckoutAtOptionsDevinoToCsumCache,
#if defined(ENABLE_OVERLOADING)
    repoCheckoutAtOptions_devinoToCsumCache ,
#endif
    setRepoCheckoutAtOptionsDevinoToCsumCache,


-- ** enableFsync #attr:enableFsync#
-- | /No description available in the introspection data./

    getRepoCheckoutAtOptionsEnableFsync     ,
#if defined(ENABLE_OVERLOADING)
    repoCheckoutAtOptions_enableFsync       ,
#endif
    setRepoCheckoutAtOptionsEnableFsync     ,


-- ** enableUncompressedCache #attr:enableUncompressedCache#
-- | /No description available in the introspection data./

    getRepoCheckoutAtOptionsEnableUncompressedCache,
#if defined(ENABLE_OVERLOADING)
    repoCheckoutAtOptions_enableUncompressedCache,
#endif
    setRepoCheckoutAtOptionsEnableUncompressedCache,


-- ** filter #attr:filter#
-- | /No description available in the introspection data./

    clearRepoCheckoutAtOptionsFilter        ,
    getRepoCheckoutAtOptionsFilter          ,
#if defined(ENABLE_OVERLOADING)
    repoCheckoutAtOptions_filter            ,
#endif
    setRepoCheckoutAtOptionsFilter          ,


-- ** filterUserData #attr:filterUserData#
-- | /No description available in the introspection data./

    clearRepoCheckoutAtOptionsFilterUserData,
    getRepoCheckoutAtOptionsFilterUserData  ,
#if defined(ENABLE_OVERLOADING)
    repoCheckoutAtOptions_filterUserData    ,
#endif
    setRepoCheckoutAtOptionsFilterUserData  ,


-- ** forceCopy #attr:forceCopy#
-- | /No description available in the introspection data./

    getRepoCheckoutAtOptionsForceCopy       ,
#if defined(ENABLE_OVERLOADING)
    repoCheckoutAtOptions_forceCopy         ,
#endif
    setRepoCheckoutAtOptionsForceCopy       ,


-- ** forceCopyZerosized #attr:forceCopyZerosized#
-- | /No description available in the introspection data./

    getRepoCheckoutAtOptionsForceCopyZerosized,
#if defined(ENABLE_OVERLOADING)
    repoCheckoutAtOptions_forceCopyZerosized,
#endif
    setRepoCheckoutAtOptionsForceCopyZerosized,


-- ** mode #attr:mode#
-- | /No description available in the introspection data./

    getRepoCheckoutAtOptionsMode            ,
#if defined(ENABLE_OVERLOADING)
    repoCheckoutAtOptions_mode              ,
#endif
    setRepoCheckoutAtOptionsMode            ,


-- ** noCopyFallback #attr:noCopyFallback#
-- | /No description available in the introspection data./

    getRepoCheckoutAtOptionsNoCopyFallback  ,
#if defined(ENABLE_OVERLOADING)
    repoCheckoutAtOptions_noCopyFallback    ,
#endif
    setRepoCheckoutAtOptionsNoCopyFallback  ,


-- ** overwriteMode #attr:overwriteMode#
-- | /No description available in the introspection data./

    getRepoCheckoutAtOptionsOverwriteMode   ,
#if defined(ENABLE_OVERLOADING)
    repoCheckoutAtOptions_overwriteMode     ,
#endif
    setRepoCheckoutAtOptionsOverwriteMode   ,


-- ** processWhiteouts #attr:processWhiteouts#
-- | /No description available in the introspection data./

    getRepoCheckoutAtOptionsProcessWhiteouts,
#if defined(ENABLE_OVERLOADING)
    repoCheckoutAtOptions_processWhiteouts  ,
#endif
    setRepoCheckoutAtOptionsProcessWhiteouts,


-- ** sepolicy #attr:sepolicy#
-- | /No description available in the introspection data./

    clearRepoCheckoutAtOptionsSepolicy      ,
    getRepoCheckoutAtOptionsSepolicy        ,
#if defined(ENABLE_OVERLOADING)
    repoCheckoutAtOptions_sepolicy          ,
#endif
    setRepoCheckoutAtOptionsSepolicy        ,


-- ** sepolicyPrefix #attr:sepolicyPrefix#
-- | /No description available in the introspection data./

    clearRepoCheckoutAtOptionsSepolicyPrefix,
    getRepoCheckoutAtOptionsSepolicyPrefix  ,
#if defined(ENABLE_OVERLOADING)
    repoCheckoutAtOptions_sepolicyPrefix    ,
#endif
    setRepoCheckoutAtOptionsSepolicyPrefix  ,


-- ** subpath #attr:subpath#
-- | /No description available in the introspection data./

    clearRepoCheckoutAtOptionsSubpath       ,
    getRepoCheckoutAtOptionsSubpath         ,
#if defined(ENABLE_OVERLOADING)
    repoCheckoutAtOptions_subpath           ,
#endif
    setRepoCheckoutAtOptionsSubpath         ,




    ) 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 qualified GI.OSTree.Callbacks as OSTree.Callbacks
import {-# SOURCE #-} qualified GI.OSTree.Enums as OSTree.Enums
import {-# SOURCE #-} qualified GI.OSTree.Objects.SePolicy as OSTree.SePolicy
import {-# SOURCE #-} qualified GI.OSTree.Structs.RepoDevInoCache as OSTree.RepoDevInoCache

-- | Memory-managed wrapper type.
newtype RepoCheckoutAtOptions = RepoCheckoutAtOptions (ManagedPtr RepoCheckoutAtOptions)
    deriving (RepoCheckoutAtOptions -> RepoCheckoutAtOptions -> Bool
(RepoCheckoutAtOptions -> RepoCheckoutAtOptions -> Bool)
-> (RepoCheckoutAtOptions -> RepoCheckoutAtOptions -> Bool)
-> Eq RepoCheckoutAtOptions
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: RepoCheckoutAtOptions -> RepoCheckoutAtOptions -> Bool
$c/= :: RepoCheckoutAtOptions -> RepoCheckoutAtOptions -> Bool
== :: RepoCheckoutAtOptions -> RepoCheckoutAtOptions -> Bool
$c== :: RepoCheckoutAtOptions -> RepoCheckoutAtOptions -> Bool
Eq)
instance WrappedPtr RepoCheckoutAtOptions where
    wrappedPtrCalloc :: IO (Ptr RepoCheckoutAtOptions)
wrappedPtrCalloc = Int -> IO (Ptr RepoCheckoutAtOptions)
forall a. Int -> IO (Ptr a)
callocBytes 152
    wrappedPtrCopy :: RepoCheckoutAtOptions -> IO RepoCheckoutAtOptions
wrappedPtrCopy = \p :: RepoCheckoutAtOptions
p -> RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO RepoCheckoutAtOptions)
-> IO RepoCheckoutAtOptions
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
p (Int -> Ptr RepoCheckoutAtOptions -> IO (Ptr RepoCheckoutAtOptions)
forall a. WrappedPtr a => Int -> Ptr a -> IO (Ptr a)
copyBytes 152 (Ptr RepoCheckoutAtOptions -> IO (Ptr RepoCheckoutAtOptions))
-> (Ptr RepoCheckoutAtOptions -> IO RepoCheckoutAtOptions)
-> Ptr RepoCheckoutAtOptions
-> IO RepoCheckoutAtOptions
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> (ManagedPtr RepoCheckoutAtOptions -> RepoCheckoutAtOptions)
-> Ptr RepoCheckoutAtOptions -> IO RepoCheckoutAtOptions
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapPtr ManagedPtr RepoCheckoutAtOptions -> RepoCheckoutAtOptions
RepoCheckoutAtOptions)
    wrappedPtrFree :: Maybe (GDestroyNotify RepoCheckoutAtOptions)
wrappedPtrFree = GDestroyNotify RepoCheckoutAtOptions
-> Maybe (GDestroyNotify RepoCheckoutAtOptions)
forall a. a -> Maybe a
Just GDestroyNotify RepoCheckoutAtOptions
forall a. FunPtr (Ptr a -> IO ())
ptr_to_g_free

-- | Construct a `RepoCheckoutAtOptions` struct initialized to zero.
newZeroRepoCheckoutAtOptions :: MonadIO m => m RepoCheckoutAtOptions
newZeroRepoCheckoutAtOptions :: m RepoCheckoutAtOptions
newZeroRepoCheckoutAtOptions = IO RepoCheckoutAtOptions -> m RepoCheckoutAtOptions
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO RepoCheckoutAtOptions -> m RepoCheckoutAtOptions)
-> IO RepoCheckoutAtOptions -> m RepoCheckoutAtOptions
forall a b. (a -> b) -> a -> b
$ IO (Ptr RepoCheckoutAtOptions)
forall a. WrappedPtr a => IO (Ptr a)
wrappedPtrCalloc IO (Ptr RepoCheckoutAtOptions)
-> (Ptr RepoCheckoutAtOptions -> IO RepoCheckoutAtOptions)
-> IO RepoCheckoutAtOptions
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= (ManagedPtr RepoCheckoutAtOptions -> RepoCheckoutAtOptions)
-> Ptr RepoCheckoutAtOptions -> IO RepoCheckoutAtOptions
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapPtr ManagedPtr RepoCheckoutAtOptions -> RepoCheckoutAtOptions
RepoCheckoutAtOptions

instance tag ~ 'AttrSet => Constructible RepoCheckoutAtOptions tag where
    new :: (ManagedPtr RepoCheckoutAtOptions -> RepoCheckoutAtOptions)
-> [AttrOp RepoCheckoutAtOptions tag] -> m RepoCheckoutAtOptions
new _ attrs :: [AttrOp RepoCheckoutAtOptions tag]
attrs = do
        RepoCheckoutAtOptions
o <- m RepoCheckoutAtOptions
forall (m :: * -> *). MonadIO m => m RepoCheckoutAtOptions
newZeroRepoCheckoutAtOptions
        RepoCheckoutAtOptions
-> [AttrOp RepoCheckoutAtOptions 'AttrSet] -> m ()
forall o (m :: * -> *).
MonadIO m =>
o -> [AttrOp o 'AttrSet] -> m ()
GI.Attributes.set RepoCheckoutAtOptions
o [AttrOp RepoCheckoutAtOptions tag]
[AttrOp RepoCheckoutAtOptions 'AttrSet]
attrs
        RepoCheckoutAtOptions -> m RepoCheckoutAtOptions
forall (m :: * -> *) a. Monad m => a -> m a
return RepoCheckoutAtOptions
o


-- | A convenience alias for `Nothing` :: `Maybe` `RepoCheckoutAtOptions`.
noRepoCheckoutAtOptions :: Maybe RepoCheckoutAtOptions
noRepoCheckoutAtOptions :: Maybe RepoCheckoutAtOptions
noRepoCheckoutAtOptions = Maybe RepoCheckoutAtOptions
forall a. Maybe a
Nothing

-- | Get the value of the “@mode@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' repoCheckoutAtOptions #mode
-- @
getRepoCheckoutAtOptionsMode :: MonadIO m => RepoCheckoutAtOptions -> m OSTree.Enums.RepoCheckoutMode
getRepoCheckoutAtOptionsMode :: RepoCheckoutAtOptions -> m RepoCheckoutMode
getRepoCheckoutAtOptionsMode s :: RepoCheckoutAtOptions
s = IO RepoCheckoutMode -> m RepoCheckoutMode
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO RepoCheckoutMode -> m RepoCheckoutMode)
-> IO RepoCheckoutMode -> m RepoCheckoutMode
forall a b. (a -> b) -> a -> b
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO RepoCheckoutMode)
-> IO RepoCheckoutMode
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions -> IO RepoCheckoutMode)
 -> IO RepoCheckoutMode)
-> (Ptr RepoCheckoutAtOptions -> IO RepoCheckoutMode)
-> IO RepoCheckoutMode
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    CUInt
val <- Ptr CUInt -> IO CUInt
forall a. Storable a => Ptr a -> IO a
peek (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions -> Int -> Ptr CUInt
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 0) :: IO CUInt
    let val' :: RepoCheckoutMode
val' = (Int -> RepoCheckoutMode
forall a. Enum a => Int -> a
toEnum (Int -> RepoCheckoutMode)
-> (CUInt -> Int) -> CUInt -> RepoCheckoutMode
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
val
    RepoCheckoutMode -> IO RepoCheckoutMode
forall (m :: * -> *) a. Monad m => a -> m a
return RepoCheckoutMode
val'

-- | Set the value of the “@mode@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' repoCheckoutAtOptions [ #mode 'Data.GI.Base.Attributes.:=' value ]
-- @
setRepoCheckoutAtOptionsMode :: MonadIO m => RepoCheckoutAtOptions -> OSTree.Enums.RepoCheckoutMode -> m ()
setRepoCheckoutAtOptionsMode :: RepoCheckoutAtOptions -> RepoCheckoutMode -> m ()
setRepoCheckoutAtOptionsMode s :: RepoCheckoutAtOptions
s val :: RepoCheckoutMode
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions -> IO ()) -> IO ())
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    let val' :: CUInt
val' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt)
-> (RepoCheckoutMode -> Int) -> RepoCheckoutMode -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. RepoCheckoutMode -> Int
forall a. Enum a => a -> Int
fromEnum) RepoCheckoutMode
val
    Ptr CUInt -> CUInt -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions -> Int -> Ptr CUInt
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 0) (CUInt
val' :: CUInt)

#if defined(ENABLE_OVERLOADING)
data RepoCheckoutAtOptionsModeFieldInfo
instance AttrInfo RepoCheckoutAtOptionsModeFieldInfo where
    type AttrBaseTypeConstraint RepoCheckoutAtOptionsModeFieldInfo = (~) RepoCheckoutAtOptions
    type AttrAllowedOps RepoCheckoutAtOptionsModeFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint RepoCheckoutAtOptionsModeFieldInfo = (~) OSTree.Enums.RepoCheckoutMode
    type AttrTransferTypeConstraint RepoCheckoutAtOptionsModeFieldInfo = (~)OSTree.Enums.RepoCheckoutMode
    type AttrTransferType RepoCheckoutAtOptionsModeFieldInfo = OSTree.Enums.RepoCheckoutMode
    type AttrGetType RepoCheckoutAtOptionsModeFieldInfo = OSTree.Enums.RepoCheckoutMode
    type AttrLabel RepoCheckoutAtOptionsModeFieldInfo = "mode"
    type AttrOrigin RepoCheckoutAtOptionsModeFieldInfo = RepoCheckoutAtOptions
    attrGet = getRepoCheckoutAtOptionsMode
    attrSet = setRepoCheckoutAtOptionsMode
    attrConstruct = undefined
    attrClear = undefined
    attrTransfer _ v = do
        return v

repoCheckoutAtOptions_mode :: AttrLabelProxy "mode"
repoCheckoutAtOptions_mode = AttrLabelProxy

#endif


-- | Get the value of the “@overwrite_mode@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' repoCheckoutAtOptions #overwriteMode
-- @
getRepoCheckoutAtOptionsOverwriteMode :: MonadIO m => RepoCheckoutAtOptions -> m OSTree.Enums.RepoCheckoutOverwriteMode
getRepoCheckoutAtOptionsOverwriteMode :: RepoCheckoutAtOptions -> m RepoCheckoutOverwriteMode
getRepoCheckoutAtOptionsOverwriteMode s :: RepoCheckoutAtOptions
s = IO RepoCheckoutOverwriteMode -> m RepoCheckoutOverwriteMode
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO RepoCheckoutOverwriteMode -> m RepoCheckoutOverwriteMode)
-> IO RepoCheckoutOverwriteMode -> m RepoCheckoutOverwriteMode
forall a b. (a -> b) -> a -> b
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO RepoCheckoutOverwriteMode)
-> IO RepoCheckoutOverwriteMode
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions -> IO RepoCheckoutOverwriteMode)
 -> IO RepoCheckoutOverwriteMode)
-> (Ptr RepoCheckoutAtOptions -> IO RepoCheckoutOverwriteMode)
-> IO RepoCheckoutOverwriteMode
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    CUInt
val <- Ptr CUInt -> IO CUInt
forall a. Storable a => Ptr a -> IO a
peek (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions -> Int -> Ptr CUInt
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 4) :: IO CUInt
    let val' :: RepoCheckoutOverwriteMode
val' = (Int -> RepoCheckoutOverwriteMode
forall a. Enum a => Int -> a
toEnum (Int -> RepoCheckoutOverwriteMode)
-> (CUInt -> Int) -> CUInt -> RepoCheckoutOverwriteMode
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
val
    RepoCheckoutOverwriteMode -> IO RepoCheckoutOverwriteMode
forall (m :: * -> *) a. Monad m => a -> m a
return RepoCheckoutOverwriteMode
val'

-- | Set the value of the “@overwrite_mode@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' repoCheckoutAtOptions [ #overwriteMode 'Data.GI.Base.Attributes.:=' value ]
-- @
setRepoCheckoutAtOptionsOverwriteMode :: MonadIO m => RepoCheckoutAtOptions -> OSTree.Enums.RepoCheckoutOverwriteMode -> m ()
setRepoCheckoutAtOptionsOverwriteMode :: RepoCheckoutAtOptions -> RepoCheckoutOverwriteMode -> m ()
setRepoCheckoutAtOptionsOverwriteMode s :: RepoCheckoutAtOptions
s val :: RepoCheckoutOverwriteMode
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions -> IO ()) -> IO ())
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    let val' :: CUInt
val' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt)
-> (RepoCheckoutOverwriteMode -> Int)
-> RepoCheckoutOverwriteMode
-> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. RepoCheckoutOverwriteMode -> Int
forall a. Enum a => a -> Int
fromEnum) RepoCheckoutOverwriteMode
val
    Ptr CUInt -> CUInt -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions -> Int -> Ptr CUInt
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 4) (CUInt
val' :: CUInt)

#if defined(ENABLE_OVERLOADING)
data RepoCheckoutAtOptionsOverwriteModeFieldInfo
instance AttrInfo RepoCheckoutAtOptionsOverwriteModeFieldInfo where
    type AttrBaseTypeConstraint RepoCheckoutAtOptionsOverwriteModeFieldInfo = (~) RepoCheckoutAtOptions
    type AttrAllowedOps RepoCheckoutAtOptionsOverwriteModeFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint RepoCheckoutAtOptionsOverwriteModeFieldInfo = (~) OSTree.Enums.RepoCheckoutOverwriteMode
    type AttrTransferTypeConstraint RepoCheckoutAtOptionsOverwriteModeFieldInfo = (~)OSTree.Enums.RepoCheckoutOverwriteMode
    type AttrTransferType RepoCheckoutAtOptionsOverwriteModeFieldInfo = OSTree.Enums.RepoCheckoutOverwriteMode
    type AttrGetType RepoCheckoutAtOptionsOverwriteModeFieldInfo = OSTree.Enums.RepoCheckoutOverwriteMode
    type AttrLabel RepoCheckoutAtOptionsOverwriteModeFieldInfo = "overwrite_mode"
    type AttrOrigin RepoCheckoutAtOptionsOverwriteModeFieldInfo = RepoCheckoutAtOptions
    attrGet = getRepoCheckoutAtOptionsOverwriteMode
    attrSet = setRepoCheckoutAtOptionsOverwriteMode
    attrConstruct = undefined
    attrClear = undefined
    attrTransfer _ v = do
        return v

repoCheckoutAtOptions_overwriteMode :: AttrLabelProxy "overwriteMode"
repoCheckoutAtOptions_overwriteMode = AttrLabelProxy

#endif


-- | Get the value of the “@enable_uncompressed_cache@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' repoCheckoutAtOptions #enableUncompressedCache
-- @
getRepoCheckoutAtOptionsEnableUncompressedCache :: MonadIO m => RepoCheckoutAtOptions -> m Bool
getRepoCheckoutAtOptionsEnableUncompressedCache :: RepoCheckoutAtOptions -> m Bool
getRepoCheckoutAtOptionsEnableUncompressedCache s :: RepoCheckoutAtOptions
s = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO Bool) -> IO Bool
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions -> IO Bool) -> IO Bool)
-> (Ptr RepoCheckoutAtOptions -> IO Bool) -> IO Bool
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    CInt
val <- Ptr CInt -> IO CInt
forall a. Storable a => Ptr a -> IO a
peek (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions -> Int -> Ptr CInt
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 8) :: IO CInt
    let val' :: Bool
val' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
val
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
val'

-- | Set the value of the “@enable_uncompressed_cache@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' repoCheckoutAtOptions [ #enableUncompressedCache 'Data.GI.Base.Attributes.:=' value ]
-- @
setRepoCheckoutAtOptionsEnableUncompressedCache :: MonadIO m => RepoCheckoutAtOptions -> Bool -> m ()
setRepoCheckoutAtOptionsEnableUncompressedCache :: RepoCheckoutAtOptions -> Bool -> m ()
setRepoCheckoutAtOptionsEnableUncompressedCache s :: RepoCheckoutAtOptions
s val :: Bool
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions -> IO ()) -> IO ())
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    let val' :: CInt
val' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
val
    Ptr CInt -> CInt -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions -> Int -> Ptr CInt
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 8) (CInt
val' :: CInt)

#if defined(ENABLE_OVERLOADING)
data RepoCheckoutAtOptionsEnableUncompressedCacheFieldInfo
instance AttrInfo RepoCheckoutAtOptionsEnableUncompressedCacheFieldInfo where
    type AttrBaseTypeConstraint RepoCheckoutAtOptionsEnableUncompressedCacheFieldInfo = (~) RepoCheckoutAtOptions
    type AttrAllowedOps RepoCheckoutAtOptionsEnableUncompressedCacheFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint RepoCheckoutAtOptionsEnableUncompressedCacheFieldInfo = (~) Bool
    type AttrTransferTypeConstraint RepoCheckoutAtOptionsEnableUncompressedCacheFieldInfo = (~)Bool
    type AttrTransferType RepoCheckoutAtOptionsEnableUncompressedCacheFieldInfo = Bool
    type AttrGetType RepoCheckoutAtOptionsEnableUncompressedCacheFieldInfo = Bool
    type AttrLabel RepoCheckoutAtOptionsEnableUncompressedCacheFieldInfo = "enable_uncompressed_cache"
    type AttrOrigin RepoCheckoutAtOptionsEnableUncompressedCacheFieldInfo = RepoCheckoutAtOptions
    attrGet = getRepoCheckoutAtOptionsEnableUncompressedCache
    attrSet = setRepoCheckoutAtOptionsEnableUncompressedCache
    attrConstruct = undefined
    attrClear = undefined
    attrTransfer _ v = do
        return v

repoCheckoutAtOptions_enableUncompressedCache :: AttrLabelProxy "enableUncompressedCache"
repoCheckoutAtOptions_enableUncompressedCache = AttrLabelProxy

#endif


-- | Get the value of the “@enable_fsync@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' repoCheckoutAtOptions #enableFsync
-- @
getRepoCheckoutAtOptionsEnableFsync :: MonadIO m => RepoCheckoutAtOptions -> m Bool
getRepoCheckoutAtOptionsEnableFsync :: RepoCheckoutAtOptions -> m Bool
getRepoCheckoutAtOptionsEnableFsync s :: RepoCheckoutAtOptions
s = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO Bool) -> IO Bool
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions -> IO Bool) -> IO Bool)
-> (Ptr RepoCheckoutAtOptions -> IO Bool) -> IO Bool
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    CInt
val <- Ptr CInt -> IO CInt
forall a. Storable a => Ptr a -> IO a
peek (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions -> Int -> Ptr CInt
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 12) :: IO CInt
    let val' :: Bool
val' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
val
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
val'

-- | Set the value of the “@enable_fsync@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' repoCheckoutAtOptions [ #enableFsync 'Data.GI.Base.Attributes.:=' value ]
-- @
setRepoCheckoutAtOptionsEnableFsync :: MonadIO m => RepoCheckoutAtOptions -> Bool -> m ()
setRepoCheckoutAtOptionsEnableFsync :: RepoCheckoutAtOptions -> Bool -> m ()
setRepoCheckoutAtOptionsEnableFsync s :: RepoCheckoutAtOptions
s val :: Bool
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions -> IO ()) -> IO ())
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    let val' :: CInt
val' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
val
    Ptr CInt -> CInt -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions -> Int -> Ptr CInt
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 12) (CInt
val' :: CInt)

#if defined(ENABLE_OVERLOADING)
data RepoCheckoutAtOptionsEnableFsyncFieldInfo
instance AttrInfo RepoCheckoutAtOptionsEnableFsyncFieldInfo where
    type AttrBaseTypeConstraint RepoCheckoutAtOptionsEnableFsyncFieldInfo = (~) RepoCheckoutAtOptions
    type AttrAllowedOps RepoCheckoutAtOptionsEnableFsyncFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint RepoCheckoutAtOptionsEnableFsyncFieldInfo = (~) Bool
    type AttrTransferTypeConstraint RepoCheckoutAtOptionsEnableFsyncFieldInfo = (~)Bool
    type AttrTransferType RepoCheckoutAtOptionsEnableFsyncFieldInfo = Bool
    type AttrGetType RepoCheckoutAtOptionsEnableFsyncFieldInfo = Bool
    type AttrLabel RepoCheckoutAtOptionsEnableFsyncFieldInfo = "enable_fsync"
    type AttrOrigin RepoCheckoutAtOptionsEnableFsyncFieldInfo = RepoCheckoutAtOptions
    attrGet = getRepoCheckoutAtOptionsEnableFsync
    attrSet = setRepoCheckoutAtOptionsEnableFsync
    attrConstruct = undefined
    attrClear = undefined
    attrTransfer _ v = do
        return v

repoCheckoutAtOptions_enableFsync :: AttrLabelProxy "enableFsync"
repoCheckoutAtOptions_enableFsync = AttrLabelProxy

#endif


-- | Get the value of the “@process_whiteouts@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' repoCheckoutAtOptions #processWhiteouts
-- @
getRepoCheckoutAtOptionsProcessWhiteouts :: MonadIO m => RepoCheckoutAtOptions -> m Bool
getRepoCheckoutAtOptionsProcessWhiteouts :: RepoCheckoutAtOptions -> m Bool
getRepoCheckoutAtOptionsProcessWhiteouts s :: RepoCheckoutAtOptions
s = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO Bool) -> IO Bool
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions -> IO Bool) -> IO Bool)
-> (Ptr RepoCheckoutAtOptions -> IO Bool) -> IO Bool
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    CInt
val <- Ptr CInt -> IO CInt
forall a. Storable a => Ptr a -> IO a
peek (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions -> Int -> Ptr CInt
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16) :: IO CInt
    let val' :: Bool
val' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
val
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
val'

-- | Set the value of the “@process_whiteouts@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' repoCheckoutAtOptions [ #processWhiteouts 'Data.GI.Base.Attributes.:=' value ]
-- @
setRepoCheckoutAtOptionsProcessWhiteouts :: MonadIO m => RepoCheckoutAtOptions -> Bool -> m ()
setRepoCheckoutAtOptionsProcessWhiteouts :: RepoCheckoutAtOptions -> Bool -> m ()
setRepoCheckoutAtOptionsProcessWhiteouts s :: RepoCheckoutAtOptions
s val :: Bool
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions -> IO ()) -> IO ())
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    let val' :: CInt
val' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
val
    Ptr CInt -> CInt -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions -> Int -> Ptr CInt
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16) (CInt
val' :: CInt)

#if defined(ENABLE_OVERLOADING)
data RepoCheckoutAtOptionsProcessWhiteoutsFieldInfo
instance AttrInfo RepoCheckoutAtOptionsProcessWhiteoutsFieldInfo where
    type AttrBaseTypeConstraint RepoCheckoutAtOptionsProcessWhiteoutsFieldInfo = (~) RepoCheckoutAtOptions
    type AttrAllowedOps RepoCheckoutAtOptionsProcessWhiteoutsFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint RepoCheckoutAtOptionsProcessWhiteoutsFieldInfo = (~) Bool
    type AttrTransferTypeConstraint RepoCheckoutAtOptionsProcessWhiteoutsFieldInfo = (~)Bool
    type AttrTransferType RepoCheckoutAtOptionsProcessWhiteoutsFieldInfo = Bool
    type AttrGetType RepoCheckoutAtOptionsProcessWhiteoutsFieldInfo = Bool
    type AttrLabel RepoCheckoutAtOptionsProcessWhiteoutsFieldInfo = "process_whiteouts"
    type AttrOrigin RepoCheckoutAtOptionsProcessWhiteoutsFieldInfo = RepoCheckoutAtOptions
    attrGet = getRepoCheckoutAtOptionsProcessWhiteouts
    attrSet = setRepoCheckoutAtOptionsProcessWhiteouts
    attrConstruct = undefined
    attrClear = undefined
    attrTransfer _ v = do
        return v

repoCheckoutAtOptions_processWhiteouts :: AttrLabelProxy "processWhiteouts"
repoCheckoutAtOptions_processWhiteouts = AttrLabelProxy

#endif


-- | Get the value of the “@no_copy_fallback@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' repoCheckoutAtOptions #noCopyFallback
-- @
getRepoCheckoutAtOptionsNoCopyFallback :: MonadIO m => RepoCheckoutAtOptions -> m Bool
getRepoCheckoutAtOptionsNoCopyFallback :: RepoCheckoutAtOptions -> m Bool
getRepoCheckoutAtOptionsNoCopyFallback s :: RepoCheckoutAtOptions
s = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO Bool) -> IO Bool
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions -> IO Bool) -> IO Bool)
-> (Ptr RepoCheckoutAtOptions -> IO Bool) -> IO Bool
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    CInt
val <- Ptr CInt -> IO CInt
forall a. Storable a => Ptr a -> IO a
peek (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions -> Int -> Ptr CInt
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 20) :: IO CInt
    let val' :: Bool
val' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
val
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
val'

-- | Set the value of the “@no_copy_fallback@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' repoCheckoutAtOptions [ #noCopyFallback 'Data.GI.Base.Attributes.:=' value ]
-- @
setRepoCheckoutAtOptionsNoCopyFallback :: MonadIO m => RepoCheckoutAtOptions -> Bool -> m ()
setRepoCheckoutAtOptionsNoCopyFallback :: RepoCheckoutAtOptions -> Bool -> m ()
setRepoCheckoutAtOptionsNoCopyFallback s :: RepoCheckoutAtOptions
s val :: Bool
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions -> IO ()) -> IO ())
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    let val' :: CInt
val' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
val
    Ptr CInt -> CInt -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions -> Int -> Ptr CInt
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 20) (CInt
val' :: CInt)

#if defined(ENABLE_OVERLOADING)
data RepoCheckoutAtOptionsNoCopyFallbackFieldInfo
instance AttrInfo RepoCheckoutAtOptionsNoCopyFallbackFieldInfo where
    type AttrBaseTypeConstraint RepoCheckoutAtOptionsNoCopyFallbackFieldInfo = (~) RepoCheckoutAtOptions
    type AttrAllowedOps RepoCheckoutAtOptionsNoCopyFallbackFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint RepoCheckoutAtOptionsNoCopyFallbackFieldInfo = (~) Bool
    type AttrTransferTypeConstraint RepoCheckoutAtOptionsNoCopyFallbackFieldInfo = (~)Bool
    type AttrTransferType RepoCheckoutAtOptionsNoCopyFallbackFieldInfo = Bool
    type AttrGetType RepoCheckoutAtOptionsNoCopyFallbackFieldInfo = Bool
    type AttrLabel RepoCheckoutAtOptionsNoCopyFallbackFieldInfo = "no_copy_fallback"
    type AttrOrigin RepoCheckoutAtOptionsNoCopyFallbackFieldInfo = RepoCheckoutAtOptions
    attrGet = getRepoCheckoutAtOptionsNoCopyFallback
    attrSet = setRepoCheckoutAtOptionsNoCopyFallback
    attrConstruct = undefined
    attrClear = undefined
    attrTransfer _ v = do
        return v

repoCheckoutAtOptions_noCopyFallback :: AttrLabelProxy "noCopyFallback"
repoCheckoutAtOptions_noCopyFallback = AttrLabelProxy

#endif


-- | Get the value of the “@force_copy@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' repoCheckoutAtOptions #forceCopy
-- @
getRepoCheckoutAtOptionsForceCopy :: MonadIO m => RepoCheckoutAtOptions -> m Bool
getRepoCheckoutAtOptionsForceCopy :: RepoCheckoutAtOptions -> m Bool
getRepoCheckoutAtOptionsForceCopy s :: RepoCheckoutAtOptions
s = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO Bool) -> IO Bool
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions -> IO Bool) -> IO Bool)
-> (Ptr RepoCheckoutAtOptions -> IO Bool) -> IO Bool
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    CInt
val <- Ptr CInt -> IO CInt
forall a. Storable a => Ptr a -> IO a
peek (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions -> Int -> Ptr CInt
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 24) :: IO CInt
    let val' :: Bool
val' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
val
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
val'

-- | Set the value of the “@force_copy@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' repoCheckoutAtOptions [ #forceCopy 'Data.GI.Base.Attributes.:=' value ]
-- @
setRepoCheckoutAtOptionsForceCopy :: MonadIO m => RepoCheckoutAtOptions -> Bool -> m ()
setRepoCheckoutAtOptionsForceCopy :: RepoCheckoutAtOptions -> Bool -> m ()
setRepoCheckoutAtOptionsForceCopy s :: RepoCheckoutAtOptions
s val :: Bool
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions -> IO ()) -> IO ())
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    let val' :: CInt
val' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
val
    Ptr CInt -> CInt -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions -> Int -> Ptr CInt
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 24) (CInt
val' :: CInt)

#if defined(ENABLE_OVERLOADING)
data RepoCheckoutAtOptionsForceCopyFieldInfo
instance AttrInfo RepoCheckoutAtOptionsForceCopyFieldInfo where
    type AttrBaseTypeConstraint RepoCheckoutAtOptionsForceCopyFieldInfo = (~) RepoCheckoutAtOptions
    type AttrAllowedOps RepoCheckoutAtOptionsForceCopyFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint RepoCheckoutAtOptionsForceCopyFieldInfo = (~) Bool
    type AttrTransferTypeConstraint RepoCheckoutAtOptionsForceCopyFieldInfo = (~)Bool
    type AttrTransferType RepoCheckoutAtOptionsForceCopyFieldInfo = Bool
    type AttrGetType RepoCheckoutAtOptionsForceCopyFieldInfo = Bool
    type AttrLabel RepoCheckoutAtOptionsForceCopyFieldInfo = "force_copy"
    type AttrOrigin RepoCheckoutAtOptionsForceCopyFieldInfo = RepoCheckoutAtOptions
    attrGet = getRepoCheckoutAtOptionsForceCopy
    attrSet = setRepoCheckoutAtOptionsForceCopy
    attrConstruct = undefined
    attrClear = undefined
    attrTransfer _ v = do
        return v

repoCheckoutAtOptions_forceCopy :: AttrLabelProxy "forceCopy"
repoCheckoutAtOptions_forceCopy = AttrLabelProxy

#endif


-- | Get the value of the “@bareuseronly_dirs@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' repoCheckoutAtOptions #bareuseronlyDirs
-- @
getRepoCheckoutAtOptionsBareuseronlyDirs :: MonadIO m => RepoCheckoutAtOptions -> m Bool
getRepoCheckoutAtOptionsBareuseronlyDirs :: RepoCheckoutAtOptions -> m Bool
getRepoCheckoutAtOptionsBareuseronlyDirs s :: RepoCheckoutAtOptions
s = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO Bool) -> IO Bool
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions -> IO Bool) -> IO Bool)
-> (Ptr RepoCheckoutAtOptions -> IO Bool) -> IO Bool
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    CInt
val <- Ptr CInt -> IO CInt
forall a. Storable a => Ptr a -> IO a
peek (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions -> Int -> Ptr CInt
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 28) :: IO CInt
    let val' :: Bool
val' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
val
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
val'

-- | Set the value of the “@bareuseronly_dirs@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' repoCheckoutAtOptions [ #bareuseronlyDirs 'Data.GI.Base.Attributes.:=' value ]
-- @
setRepoCheckoutAtOptionsBareuseronlyDirs :: MonadIO m => RepoCheckoutAtOptions -> Bool -> m ()
setRepoCheckoutAtOptionsBareuseronlyDirs :: RepoCheckoutAtOptions -> Bool -> m ()
setRepoCheckoutAtOptionsBareuseronlyDirs s :: RepoCheckoutAtOptions
s val :: Bool
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions -> IO ()) -> IO ())
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    let val' :: CInt
val' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
val
    Ptr CInt -> CInt -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions -> Int -> Ptr CInt
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 28) (CInt
val' :: CInt)

#if defined(ENABLE_OVERLOADING)
data RepoCheckoutAtOptionsBareuseronlyDirsFieldInfo
instance AttrInfo RepoCheckoutAtOptionsBareuseronlyDirsFieldInfo where
    type AttrBaseTypeConstraint RepoCheckoutAtOptionsBareuseronlyDirsFieldInfo = (~) RepoCheckoutAtOptions
    type AttrAllowedOps RepoCheckoutAtOptionsBareuseronlyDirsFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint RepoCheckoutAtOptionsBareuseronlyDirsFieldInfo = (~) Bool
    type AttrTransferTypeConstraint RepoCheckoutAtOptionsBareuseronlyDirsFieldInfo = (~)Bool
    type AttrTransferType RepoCheckoutAtOptionsBareuseronlyDirsFieldInfo = Bool
    type AttrGetType RepoCheckoutAtOptionsBareuseronlyDirsFieldInfo = Bool
    type AttrLabel RepoCheckoutAtOptionsBareuseronlyDirsFieldInfo = "bareuseronly_dirs"
    type AttrOrigin RepoCheckoutAtOptionsBareuseronlyDirsFieldInfo = RepoCheckoutAtOptions
    attrGet = getRepoCheckoutAtOptionsBareuseronlyDirs
    attrSet = setRepoCheckoutAtOptionsBareuseronlyDirs
    attrConstruct = undefined
    attrClear = undefined
    attrTransfer _ v = do
        return v

repoCheckoutAtOptions_bareuseronlyDirs :: AttrLabelProxy "bareuseronlyDirs"
repoCheckoutAtOptions_bareuseronlyDirs = AttrLabelProxy

#endif


-- | Get the value of the “@force_copy_zerosized@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' repoCheckoutAtOptions #forceCopyZerosized
-- @
getRepoCheckoutAtOptionsForceCopyZerosized :: MonadIO m => RepoCheckoutAtOptions -> m Bool
getRepoCheckoutAtOptionsForceCopyZerosized :: RepoCheckoutAtOptions -> m Bool
getRepoCheckoutAtOptionsForceCopyZerosized s :: RepoCheckoutAtOptions
s = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO Bool) -> IO Bool
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions -> IO Bool) -> IO Bool)
-> (Ptr RepoCheckoutAtOptions -> IO Bool) -> IO Bool
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    CInt
val <- Ptr CInt -> IO CInt
forall a. Storable a => Ptr a -> IO a
peek (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions -> Int -> Ptr CInt
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 32) :: IO CInt
    let val' :: Bool
val' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
val
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
val'

-- | Set the value of the “@force_copy_zerosized@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' repoCheckoutAtOptions [ #forceCopyZerosized 'Data.GI.Base.Attributes.:=' value ]
-- @
setRepoCheckoutAtOptionsForceCopyZerosized :: MonadIO m => RepoCheckoutAtOptions -> Bool -> m ()
setRepoCheckoutAtOptionsForceCopyZerosized :: RepoCheckoutAtOptions -> Bool -> m ()
setRepoCheckoutAtOptionsForceCopyZerosized s :: RepoCheckoutAtOptions
s val :: Bool
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions -> IO ()) -> IO ())
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    let val' :: CInt
val' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
val
    Ptr CInt -> CInt -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions -> Int -> Ptr CInt
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 32) (CInt
val' :: CInt)

#if defined(ENABLE_OVERLOADING)
data RepoCheckoutAtOptionsForceCopyZerosizedFieldInfo
instance AttrInfo RepoCheckoutAtOptionsForceCopyZerosizedFieldInfo where
    type AttrBaseTypeConstraint RepoCheckoutAtOptionsForceCopyZerosizedFieldInfo = (~) RepoCheckoutAtOptions
    type AttrAllowedOps RepoCheckoutAtOptionsForceCopyZerosizedFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint RepoCheckoutAtOptionsForceCopyZerosizedFieldInfo = (~) Bool
    type AttrTransferTypeConstraint RepoCheckoutAtOptionsForceCopyZerosizedFieldInfo = (~)Bool
    type AttrTransferType RepoCheckoutAtOptionsForceCopyZerosizedFieldInfo = Bool
    type AttrGetType RepoCheckoutAtOptionsForceCopyZerosizedFieldInfo = Bool
    type AttrLabel RepoCheckoutAtOptionsForceCopyZerosizedFieldInfo = "force_copy_zerosized"
    type AttrOrigin RepoCheckoutAtOptionsForceCopyZerosizedFieldInfo = RepoCheckoutAtOptions
    attrGet = getRepoCheckoutAtOptionsForceCopyZerosized
    attrSet = setRepoCheckoutAtOptionsForceCopyZerosized
    attrConstruct = undefined
    attrClear = undefined
    attrTransfer _ v = do
        return v

repoCheckoutAtOptions_forceCopyZerosized :: AttrLabelProxy "forceCopyZerosized"
repoCheckoutAtOptions_forceCopyZerosized = AttrLabelProxy

#endif


-- XXX Skipped attribute for "RepoCheckoutAtOptions:unused_bools" :: Not implemented: "Don't know how to unpack C array of type TCArray False 4 (-1) (TBasicType TBoolean)"
-- | Get the value of the “@subpath@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' repoCheckoutAtOptions #subpath
-- @
getRepoCheckoutAtOptionsSubpath :: MonadIO m => RepoCheckoutAtOptions -> m (Maybe T.Text)
getRepoCheckoutAtOptionsSubpath :: RepoCheckoutAtOptions -> m (Maybe Text)
getRepoCheckoutAtOptionsSubpath s :: RepoCheckoutAtOptions
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
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO (Maybe Text))
-> IO (Maybe Text)
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions -> IO (Maybe Text)) -> IO (Maybe Text))
-> (Ptr RepoCheckoutAtOptions -> IO (Maybe Text))
-> IO (Maybe Text)
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    CString
val <- Ptr CString -> IO CString
forall a. Storable a => Ptr a -> IO a
peek (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions -> Int -> Ptr CString
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 56) :: 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

-- | Set the value of the “@subpath@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' repoCheckoutAtOptions [ #subpath 'Data.GI.Base.Attributes.:=' value ]
-- @
setRepoCheckoutAtOptionsSubpath :: MonadIO m => RepoCheckoutAtOptions -> CString -> m ()
setRepoCheckoutAtOptionsSubpath :: RepoCheckoutAtOptions -> CString -> m ()
setRepoCheckoutAtOptionsSubpath s :: RepoCheckoutAtOptions
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
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions -> IO ()) -> IO ())
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    Ptr CString -> CString -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions -> Int -> Ptr CString
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 56) (CString
val :: CString)

-- | Set the value of the “@subpath@” field to `Nothing`.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.clear' #subpath
-- @
clearRepoCheckoutAtOptionsSubpath :: MonadIO m => RepoCheckoutAtOptions -> m ()
clearRepoCheckoutAtOptionsSubpath :: RepoCheckoutAtOptions -> m ()
clearRepoCheckoutAtOptionsSubpath s :: RepoCheckoutAtOptions
s = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions -> IO ()) -> IO ())
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    Ptr CString -> CString -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions -> Int -> Ptr CString
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 56) (CString
forall a. Ptr a
FP.nullPtr :: CString)

#if defined(ENABLE_OVERLOADING)
data RepoCheckoutAtOptionsSubpathFieldInfo
instance AttrInfo RepoCheckoutAtOptionsSubpathFieldInfo where
    type AttrBaseTypeConstraint RepoCheckoutAtOptionsSubpathFieldInfo = (~) RepoCheckoutAtOptions
    type AttrAllowedOps RepoCheckoutAtOptionsSubpathFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint RepoCheckoutAtOptionsSubpathFieldInfo = (~) CString
    type AttrTransferTypeConstraint RepoCheckoutAtOptionsSubpathFieldInfo = (~)CString
    type AttrTransferType RepoCheckoutAtOptionsSubpathFieldInfo = CString
    type AttrGetType RepoCheckoutAtOptionsSubpathFieldInfo = Maybe T.Text
    type AttrLabel RepoCheckoutAtOptionsSubpathFieldInfo = "subpath"
    type AttrOrigin RepoCheckoutAtOptionsSubpathFieldInfo = RepoCheckoutAtOptions
    attrGet = getRepoCheckoutAtOptionsSubpath
    attrSet = setRepoCheckoutAtOptionsSubpath
    attrConstruct = undefined
    attrClear = clearRepoCheckoutAtOptionsSubpath
    attrTransfer _ v = do
        return v

repoCheckoutAtOptions_subpath :: AttrLabelProxy "subpath"
repoCheckoutAtOptions_subpath = AttrLabelProxy

#endif


-- | Get the value of the “@devino_to_csum_cache@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' repoCheckoutAtOptions #devinoToCsumCache
-- @
getRepoCheckoutAtOptionsDevinoToCsumCache :: MonadIO m => RepoCheckoutAtOptions -> m (Maybe OSTree.RepoDevInoCache.RepoDevInoCache)
getRepoCheckoutAtOptionsDevinoToCsumCache :: RepoCheckoutAtOptions -> m (Maybe RepoDevInoCache)
getRepoCheckoutAtOptionsDevinoToCsumCache s :: RepoCheckoutAtOptions
s = IO (Maybe RepoDevInoCache) -> m (Maybe RepoDevInoCache)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe RepoDevInoCache) -> m (Maybe RepoDevInoCache))
-> IO (Maybe RepoDevInoCache) -> m (Maybe RepoDevInoCache)
forall a b. (a -> b) -> a -> b
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO (Maybe RepoDevInoCache))
-> IO (Maybe RepoDevInoCache)
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions -> IO (Maybe RepoDevInoCache))
 -> IO (Maybe RepoDevInoCache))
-> (Ptr RepoCheckoutAtOptions -> IO (Maybe RepoDevInoCache))
-> IO (Maybe RepoDevInoCache)
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    Ptr RepoDevInoCache
val <- Ptr (Ptr RepoDevInoCache) -> IO (Ptr RepoDevInoCache)
forall a. Storable a => Ptr a -> IO a
peek (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions -> Int -> Ptr (Ptr RepoDevInoCache)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 64) :: IO (Ptr OSTree.RepoDevInoCache.RepoDevInoCache)
    Maybe RepoDevInoCache
result <- Ptr RepoDevInoCache
-> (Ptr RepoDevInoCache -> IO RepoDevInoCache)
-> IO (Maybe RepoDevInoCache)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
SP.convertIfNonNull Ptr RepoDevInoCache
val ((Ptr RepoDevInoCache -> IO RepoDevInoCache)
 -> IO (Maybe RepoDevInoCache))
-> (Ptr RepoDevInoCache -> IO RepoDevInoCache)
-> IO (Maybe RepoDevInoCache)
forall a b. (a -> b) -> a -> b
$ \val' :: Ptr RepoDevInoCache
val' -> do
        RepoDevInoCache
val'' <- ((ManagedPtr RepoDevInoCache -> RepoDevInoCache)
-> Ptr RepoDevInoCache -> IO RepoDevInoCache
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr RepoDevInoCache -> RepoDevInoCache
OSTree.RepoDevInoCache.RepoDevInoCache) Ptr RepoDevInoCache
val'
        RepoDevInoCache -> IO RepoDevInoCache
forall (m :: * -> *) a. Monad m => a -> m a
return RepoDevInoCache
val''
    Maybe RepoDevInoCache -> IO (Maybe RepoDevInoCache)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe RepoDevInoCache
result

-- | Set the value of the “@devino_to_csum_cache@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' repoCheckoutAtOptions [ #devinoToCsumCache 'Data.GI.Base.Attributes.:=' value ]
-- @
setRepoCheckoutAtOptionsDevinoToCsumCache :: MonadIO m => RepoCheckoutAtOptions -> Ptr OSTree.RepoDevInoCache.RepoDevInoCache -> m ()
setRepoCheckoutAtOptionsDevinoToCsumCache :: RepoCheckoutAtOptions -> Ptr RepoDevInoCache -> m ()
setRepoCheckoutAtOptionsDevinoToCsumCache s :: RepoCheckoutAtOptions
s val :: Ptr RepoDevInoCache
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions -> IO ()) -> IO ())
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    Ptr (Ptr RepoDevInoCache) -> Ptr RepoDevInoCache -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions -> Int -> Ptr (Ptr RepoDevInoCache)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 64) (Ptr RepoDevInoCache
val :: Ptr OSTree.RepoDevInoCache.RepoDevInoCache)

-- | Set the value of the “@devino_to_csum_cache@” field to `Nothing`.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.clear' #devinoToCsumCache
-- @
clearRepoCheckoutAtOptionsDevinoToCsumCache :: MonadIO m => RepoCheckoutAtOptions -> m ()
clearRepoCheckoutAtOptionsDevinoToCsumCache :: RepoCheckoutAtOptions -> m ()
clearRepoCheckoutAtOptionsDevinoToCsumCache s :: RepoCheckoutAtOptions
s = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions -> IO ()) -> IO ())
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    Ptr (Ptr RepoDevInoCache) -> Ptr RepoDevInoCache -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions -> Int -> Ptr (Ptr RepoDevInoCache)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 64) (Ptr RepoDevInoCache
forall a. Ptr a
FP.nullPtr :: Ptr OSTree.RepoDevInoCache.RepoDevInoCache)

#if defined(ENABLE_OVERLOADING)
data RepoCheckoutAtOptionsDevinoToCsumCacheFieldInfo
instance AttrInfo RepoCheckoutAtOptionsDevinoToCsumCacheFieldInfo where
    type AttrBaseTypeConstraint RepoCheckoutAtOptionsDevinoToCsumCacheFieldInfo = (~) RepoCheckoutAtOptions
    type AttrAllowedOps RepoCheckoutAtOptionsDevinoToCsumCacheFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint RepoCheckoutAtOptionsDevinoToCsumCacheFieldInfo = (~) (Ptr OSTree.RepoDevInoCache.RepoDevInoCache)
    type AttrTransferTypeConstraint RepoCheckoutAtOptionsDevinoToCsumCacheFieldInfo = (~)(Ptr OSTree.RepoDevInoCache.RepoDevInoCache)
    type AttrTransferType RepoCheckoutAtOptionsDevinoToCsumCacheFieldInfo = (Ptr OSTree.RepoDevInoCache.RepoDevInoCache)
    type AttrGetType RepoCheckoutAtOptionsDevinoToCsumCacheFieldInfo = Maybe OSTree.RepoDevInoCache.RepoDevInoCache
    type AttrLabel RepoCheckoutAtOptionsDevinoToCsumCacheFieldInfo = "devino_to_csum_cache"
    type AttrOrigin RepoCheckoutAtOptionsDevinoToCsumCacheFieldInfo = RepoCheckoutAtOptions
    attrGet = getRepoCheckoutAtOptionsDevinoToCsumCache
    attrSet = setRepoCheckoutAtOptionsDevinoToCsumCache
    attrConstruct = undefined
    attrClear = clearRepoCheckoutAtOptionsDevinoToCsumCache
    attrTransfer _ v = do
        return v

repoCheckoutAtOptions_devinoToCsumCache :: AttrLabelProxy "devinoToCsumCache"
repoCheckoutAtOptions_devinoToCsumCache = AttrLabelProxy

#endif


-- XXX Skipped attribute for "RepoCheckoutAtOptions:unused_ints" :: Not implemented: "Don't know how to unpack C array of type TCArray False 6 (-1) (TBasicType TInt)"
-- XXX Skipped attribute for "RepoCheckoutAtOptions:unused_ptrs" :: Not implemented: "Don't know how to unpack C array of type TCArray False 3 (-1) (TBasicType TPtr)"
-- | Get the value of the “@filter@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' repoCheckoutAtOptions #filter
-- @
getRepoCheckoutAtOptionsFilter :: MonadIO m => RepoCheckoutAtOptions -> m (Maybe OSTree.Callbacks.RepoCheckoutFilter_WithClosures)
getRepoCheckoutAtOptionsFilter :: RepoCheckoutAtOptions -> m (Maybe RepoCheckoutFilter_WithClosures)
getRepoCheckoutAtOptionsFilter s :: RepoCheckoutAtOptions
s = IO (Maybe RepoCheckoutFilter_WithClosures)
-> m (Maybe RepoCheckoutFilter_WithClosures)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe RepoCheckoutFilter_WithClosures)
 -> m (Maybe RepoCheckoutFilter_WithClosures))
-> IO (Maybe RepoCheckoutFilter_WithClosures)
-> m (Maybe RepoCheckoutFilter_WithClosures)
forall a b. (a -> b) -> a -> b
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions
    -> IO (Maybe RepoCheckoutFilter_WithClosures))
-> IO (Maybe RepoCheckoutFilter_WithClosures)
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions
  -> IO (Maybe RepoCheckoutFilter_WithClosures))
 -> IO (Maybe RepoCheckoutFilter_WithClosures))
-> (Ptr RepoCheckoutAtOptions
    -> IO (Maybe RepoCheckoutFilter_WithClosures))
-> IO (Maybe RepoCheckoutFilter_WithClosures)
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    FunPtr C_RepoCheckoutFilter
val <- Ptr (FunPtr C_RepoCheckoutFilter)
-> IO (FunPtr C_RepoCheckoutFilter)
forall a. Storable a => Ptr a -> IO a
peek (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions
-> Int -> Ptr (FunPtr C_RepoCheckoutFilter)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 120) :: IO (FunPtr OSTree.Callbacks.C_RepoCheckoutFilter)
    Maybe RepoCheckoutFilter_WithClosures
result <- FunPtr C_RepoCheckoutFilter
-> (FunPtr C_RepoCheckoutFilter
    -> IO RepoCheckoutFilter_WithClosures)
-> IO (Maybe RepoCheckoutFilter_WithClosures)
forall a b. FunPtr a -> (FunPtr a -> IO b) -> IO (Maybe b)
SP.convertFunPtrIfNonNull FunPtr C_RepoCheckoutFilter
val ((FunPtr C_RepoCheckoutFilter
  -> IO RepoCheckoutFilter_WithClosures)
 -> IO (Maybe RepoCheckoutFilter_WithClosures))
-> (FunPtr C_RepoCheckoutFilter
    -> IO RepoCheckoutFilter_WithClosures)
-> IO (Maybe RepoCheckoutFilter_WithClosures)
forall a b. (a -> b) -> a -> b
$ \val' :: FunPtr C_RepoCheckoutFilter
val' -> do
        let val'' :: RepoCheckoutFilter_WithClosures
val'' = FunPtr C_RepoCheckoutFilter -> RepoCheckoutFilter_WithClosures
forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsRepo a) =>
FunPtr C_RepoCheckoutFilter
-> a -> Text -> Ptr () -> Ptr () -> m RepoCheckoutFilterResult
OSTree.Callbacks.dynamic_RepoCheckoutFilter FunPtr C_RepoCheckoutFilter
val'
        RepoCheckoutFilter_WithClosures
-> IO RepoCheckoutFilter_WithClosures
forall (m :: * -> *) a. Monad m => a -> m a
return RepoCheckoutFilter_WithClosures
val''
    Maybe RepoCheckoutFilter_WithClosures
-> IO (Maybe RepoCheckoutFilter_WithClosures)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe RepoCheckoutFilter_WithClosures
result

-- | Set the value of the “@filter@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' repoCheckoutAtOptions [ #filter 'Data.GI.Base.Attributes.:=' value ]
-- @
setRepoCheckoutAtOptionsFilter :: MonadIO m => RepoCheckoutAtOptions -> FunPtr OSTree.Callbacks.C_RepoCheckoutFilter -> m ()
setRepoCheckoutAtOptionsFilter :: RepoCheckoutAtOptions -> FunPtr C_RepoCheckoutFilter -> m ()
setRepoCheckoutAtOptionsFilter s :: RepoCheckoutAtOptions
s val :: FunPtr C_RepoCheckoutFilter
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions -> IO ()) -> IO ())
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    Ptr (FunPtr C_RepoCheckoutFilter)
-> FunPtr C_RepoCheckoutFilter -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions
-> Int -> Ptr (FunPtr C_RepoCheckoutFilter)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 120) (FunPtr C_RepoCheckoutFilter
val :: FunPtr OSTree.Callbacks.C_RepoCheckoutFilter)

-- | Set the value of the “@filter@” field to `Nothing`.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.clear' #filter
-- @
clearRepoCheckoutAtOptionsFilter :: MonadIO m => RepoCheckoutAtOptions -> m ()
clearRepoCheckoutAtOptionsFilter :: RepoCheckoutAtOptions -> m ()
clearRepoCheckoutAtOptionsFilter s :: RepoCheckoutAtOptions
s = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions -> IO ()) -> IO ())
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    Ptr (FunPtr C_RepoCheckoutFilter)
-> FunPtr C_RepoCheckoutFilter -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions
-> Int -> Ptr (FunPtr C_RepoCheckoutFilter)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 120) (FunPtr C_RepoCheckoutFilter
forall a. FunPtr a
FP.nullFunPtr :: FunPtr OSTree.Callbacks.C_RepoCheckoutFilter)

#if defined(ENABLE_OVERLOADING)
data RepoCheckoutAtOptionsFilterFieldInfo
instance AttrInfo RepoCheckoutAtOptionsFilterFieldInfo where
    type AttrBaseTypeConstraint RepoCheckoutAtOptionsFilterFieldInfo = (~) RepoCheckoutAtOptions
    type AttrAllowedOps RepoCheckoutAtOptionsFilterFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint RepoCheckoutAtOptionsFilterFieldInfo = (~) (FunPtr OSTree.Callbacks.C_RepoCheckoutFilter)
    type AttrTransferTypeConstraint RepoCheckoutAtOptionsFilterFieldInfo = (~)OSTree.Callbacks.RepoCheckoutFilter_WithClosures
    type AttrTransferType RepoCheckoutAtOptionsFilterFieldInfo = (FunPtr OSTree.Callbacks.C_RepoCheckoutFilter)
    type AttrGetType RepoCheckoutAtOptionsFilterFieldInfo = Maybe OSTree.Callbacks.RepoCheckoutFilter_WithClosures
    type AttrLabel RepoCheckoutAtOptionsFilterFieldInfo = "filter"
    type AttrOrigin RepoCheckoutAtOptionsFilterFieldInfo = RepoCheckoutAtOptions
    attrGet = getRepoCheckoutAtOptionsFilter
    attrSet = setRepoCheckoutAtOptionsFilter
    attrConstruct = undefined
    attrClear = clearRepoCheckoutAtOptionsFilter
    attrTransfer _ v = do
        OSTree.Callbacks.mk_RepoCheckoutFilter (OSTree.Callbacks.wrap_RepoCheckoutFilter Nothing v)

repoCheckoutAtOptions_filter :: AttrLabelProxy "filter"
repoCheckoutAtOptions_filter = AttrLabelProxy

#endif


-- | Get the value of the “@filter_user_data@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' repoCheckoutAtOptions #filterUserData
-- @
getRepoCheckoutAtOptionsFilterUserData :: MonadIO m => RepoCheckoutAtOptions -> m (Ptr ())
getRepoCheckoutAtOptionsFilterUserData :: RepoCheckoutAtOptions -> m (Ptr ())
getRepoCheckoutAtOptionsFilterUserData s :: RepoCheckoutAtOptions
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
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO (Ptr ())) -> IO (Ptr ())
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions -> IO (Ptr ())) -> IO (Ptr ()))
-> (Ptr RepoCheckoutAtOptions -> IO (Ptr ())) -> IO (Ptr ())
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    Ptr ()
val <- Ptr (Ptr ()) -> IO (Ptr ())
forall a. Storable a => Ptr a -> IO a
peek (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 128) :: IO (Ptr ())
    Ptr () -> IO (Ptr ())
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr ()
val

-- | Set the value of the “@filter_user_data@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' repoCheckoutAtOptions [ #filterUserData 'Data.GI.Base.Attributes.:=' value ]
-- @
setRepoCheckoutAtOptionsFilterUserData :: MonadIO m => RepoCheckoutAtOptions -> Ptr () -> m ()
setRepoCheckoutAtOptionsFilterUserData :: RepoCheckoutAtOptions -> Ptr () -> m ()
setRepoCheckoutAtOptionsFilterUserData s :: RepoCheckoutAtOptions
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
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions -> IO ()) -> IO ())
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 128) (Ptr ()
val :: Ptr ())

-- | Set the value of the “@filter_user_data@” field to `Nothing`.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.clear' #filterUserData
-- @
clearRepoCheckoutAtOptionsFilterUserData :: MonadIO m => RepoCheckoutAtOptions -> m ()
clearRepoCheckoutAtOptionsFilterUserData :: RepoCheckoutAtOptions -> m ()
clearRepoCheckoutAtOptionsFilterUserData s :: RepoCheckoutAtOptions
s = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions -> IO ()) -> IO ())
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 128) (Ptr ()
forall a. Ptr a
FP.nullPtr :: Ptr ())

#if defined(ENABLE_OVERLOADING)
data RepoCheckoutAtOptionsFilterUserDataFieldInfo
instance AttrInfo RepoCheckoutAtOptionsFilterUserDataFieldInfo where
    type AttrBaseTypeConstraint RepoCheckoutAtOptionsFilterUserDataFieldInfo = (~) RepoCheckoutAtOptions
    type AttrAllowedOps RepoCheckoutAtOptionsFilterUserDataFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint RepoCheckoutAtOptionsFilterUserDataFieldInfo = (~) (Ptr ())
    type AttrTransferTypeConstraint RepoCheckoutAtOptionsFilterUserDataFieldInfo = (~)(Ptr ())
    type AttrTransferType RepoCheckoutAtOptionsFilterUserDataFieldInfo = (Ptr ())
    type AttrGetType RepoCheckoutAtOptionsFilterUserDataFieldInfo = Ptr ()
    type AttrLabel RepoCheckoutAtOptionsFilterUserDataFieldInfo = "filter_user_data"
    type AttrOrigin RepoCheckoutAtOptionsFilterUserDataFieldInfo = RepoCheckoutAtOptions
    attrGet = getRepoCheckoutAtOptionsFilterUserData
    attrSet = setRepoCheckoutAtOptionsFilterUserData
    attrConstruct = undefined
    attrClear = clearRepoCheckoutAtOptionsFilterUserData
    attrTransfer _ v = do
        return v

repoCheckoutAtOptions_filterUserData :: AttrLabelProxy "filterUserData"
repoCheckoutAtOptions_filterUserData = AttrLabelProxy

#endif


-- | Get the value of the “@sepolicy@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' repoCheckoutAtOptions #sepolicy
-- @
getRepoCheckoutAtOptionsSepolicy :: MonadIO m => RepoCheckoutAtOptions -> m (Maybe OSTree.SePolicy.SePolicy)
getRepoCheckoutAtOptionsSepolicy :: RepoCheckoutAtOptions -> m (Maybe SePolicy)
getRepoCheckoutAtOptionsSepolicy s :: RepoCheckoutAtOptions
s = IO (Maybe SePolicy) -> m (Maybe SePolicy)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe SePolicy) -> m (Maybe SePolicy))
-> IO (Maybe SePolicy) -> m (Maybe SePolicy)
forall a b. (a -> b) -> a -> b
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO (Maybe SePolicy))
-> IO (Maybe SePolicy)
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions -> IO (Maybe SePolicy))
 -> IO (Maybe SePolicy))
-> (Ptr RepoCheckoutAtOptions -> IO (Maybe SePolicy))
-> IO (Maybe SePolicy)
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    Ptr SePolicy
val <- Ptr (Ptr SePolicy) -> IO (Ptr SePolicy)
forall a. Storable a => Ptr a -> IO a
peek (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions -> Int -> Ptr (Ptr SePolicy)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 136) :: IO (Ptr OSTree.SePolicy.SePolicy)
    Maybe SePolicy
result <- Ptr SePolicy
-> (Ptr SePolicy -> IO SePolicy) -> IO (Maybe SePolicy)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
SP.convertIfNonNull Ptr SePolicy
val ((Ptr SePolicy -> IO SePolicy) -> IO (Maybe SePolicy))
-> (Ptr SePolicy -> IO SePolicy) -> IO (Maybe SePolicy)
forall a b. (a -> b) -> a -> b
$ \val' :: Ptr SePolicy
val' -> do
        SePolicy
val'' <- ((ManagedPtr SePolicy -> SePolicy) -> Ptr SePolicy -> IO SePolicy
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr SePolicy -> SePolicy
OSTree.SePolicy.SePolicy) Ptr SePolicy
val'
        SePolicy -> IO SePolicy
forall (m :: * -> *) a. Monad m => a -> m a
return SePolicy
val''
    Maybe SePolicy -> IO (Maybe SePolicy)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe SePolicy
result

-- | Set the value of the “@sepolicy@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' repoCheckoutAtOptions [ #sepolicy 'Data.GI.Base.Attributes.:=' value ]
-- @
setRepoCheckoutAtOptionsSepolicy :: MonadIO m => RepoCheckoutAtOptions -> Ptr OSTree.SePolicy.SePolicy -> m ()
setRepoCheckoutAtOptionsSepolicy :: RepoCheckoutAtOptions -> Ptr SePolicy -> m ()
setRepoCheckoutAtOptionsSepolicy s :: RepoCheckoutAtOptions
s val :: Ptr SePolicy
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions -> IO ()) -> IO ())
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    Ptr (Ptr SePolicy) -> Ptr SePolicy -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions -> Int -> Ptr (Ptr SePolicy)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 136) (Ptr SePolicy
val :: Ptr OSTree.SePolicy.SePolicy)

-- | Set the value of the “@sepolicy@” field to `Nothing`.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.clear' #sepolicy
-- @
clearRepoCheckoutAtOptionsSepolicy :: MonadIO m => RepoCheckoutAtOptions -> m ()
clearRepoCheckoutAtOptionsSepolicy :: RepoCheckoutAtOptions -> m ()
clearRepoCheckoutAtOptionsSepolicy s :: RepoCheckoutAtOptions
s = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions -> IO ()) -> IO ())
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    Ptr (Ptr SePolicy) -> Ptr SePolicy -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions -> Int -> Ptr (Ptr SePolicy)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 136) (Ptr SePolicy
forall a. Ptr a
FP.nullPtr :: Ptr OSTree.SePolicy.SePolicy)

#if defined(ENABLE_OVERLOADING)
data RepoCheckoutAtOptionsSepolicyFieldInfo
instance AttrInfo RepoCheckoutAtOptionsSepolicyFieldInfo where
    type AttrBaseTypeConstraint RepoCheckoutAtOptionsSepolicyFieldInfo = (~) RepoCheckoutAtOptions
    type AttrAllowedOps RepoCheckoutAtOptionsSepolicyFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint RepoCheckoutAtOptionsSepolicyFieldInfo = (~) (Ptr OSTree.SePolicy.SePolicy)
    type AttrTransferTypeConstraint RepoCheckoutAtOptionsSepolicyFieldInfo = (~)(Ptr OSTree.SePolicy.SePolicy)
    type AttrTransferType RepoCheckoutAtOptionsSepolicyFieldInfo = (Ptr OSTree.SePolicy.SePolicy)
    type AttrGetType RepoCheckoutAtOptionsSepolicyFieldInfo = Maybe OSTree.SePolicy.SePolicy
    type AttrLabel RepoCheckoutAtOptionsSepolicyFieldInfo = "sepolicy"
    type AttrOrigin RepoCheckoutAtOptionsSepolicyFieldInfo = RepoCheckoutAtOptions
    attrGet = getRepoCheckoutAtOptionsSepolicy
    attrSet = setRepoCheckoutAtOptionsSepolicy
    attrConstruct = undefined
    attrClear = clearRepoCheckoutAtOptionsSepolicy
    attrTransfer _ v = do
        return v

repoCheckoutAtOptions_sepolicy :: AttrLabelProxy "sepolicy"
repoCheckoutAtOptions_sepolicy = AttrLabelProxy

#endif


-- | Get the value of the “@sepolicy_prefix@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' repoCheckoutAtOptions #sepolicyPrefix
-- @
getRepoCheckoutAtOptionsSepolicyPrefix :: MonadIO m => RepoCheckoutAtOptions -> m (Maybe T.Text)
getRepoCheckoutAtOptionsSepolicyPrefix :: RepoCheckoutAtOptions -> m (Maybe Text)
getRepoCheckoutAtOptionsSepolicyPrefix s :: RepoCheckoutAtOptions
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
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO (Maybe Text))
-> IO (Maybe Text)
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions -> IO (Maybe Text)) -> IO (Maybe Text))
-> (Ptr RepoCheckoutAtOptions -> IO (Maybe Text))
-> IO (Maybe Text)
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    CString
val <- Ptr CString -> IO CString
forall a. Storable a => Ptr a -> IO a
peek (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions -> Int -> Ptr CString
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 144) :: 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

-- | Set the value of the “@sepolicy_prefix@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' repoCheckoutAtOptions [ #sepolicyPrefix 'Data.GI.Base.Attributes.:=' value ]
-- @
setRepoCheckoutAtOptionsSepolicyPrefix :: MonadIO m => RepoCheckoutAtOptions -> CString -> m ()
setRepoCheckoutAtOptionsSepolicyPrefix :: RepoCheckoutAtOptions -> CString -> m ()
setRepoCheckoutAtOptionsSepolicyPrefix s :: RepoCheckoutAtOptions
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
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions -> IO ()) -> IO ())
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    Ptr CString -> CString -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions -> Int -> Ptr CString
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 144) (CString
val :: CString)

-- | Set the value of the “@sepolicy_prefix@” field to `Nothing`.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.clear' #sepolicyPrefix
-- @
clearRepoCheckoutAtOptionsSepolicyPrefix :: MonadIO m => RepoCheckoutAtOptions -> m ()
clearRepoCheckoutAtOptionsSepolicyPrefix :: RepoCheckoutAtOptions -> m ()
clearRepoCheckoutAtOptionsSepolicyPrefix s :: RepoCheckoutAtOptions
s = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ RepoCheckoutAtOptions
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr RepoCheckoutAtOptions
s ((Ptr RepoCheckoutAtOptions -> IO ()) -> IO ())
-> (Ptr RepoCheckoutAtOptions -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr RepoCheckoutAtOptions
ptr -> do
    Ptr CString -> CString -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr RepoCheckoutAtOptions
ptr Ptr RepoCheckoutAtOptions -> Int -> Ptr CString
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 144) (CString
forall a. Ptr a
FP.nullPtr :: CString)

#if defined(ENABLE_OVERLOADING)
data RepoCheckoutAtOptionsSepolicyPrefixFieldInfo
instance AttrInfo RepoCheckoutAtOptionsSepolicyPrefixFieldInfo where
    type AttrBaseTypeConstraint RepoCheckoutAtOptionsSepolicyPrefixFieldInfo = (~) RepoCheckoutAtOptions
    type AttrAllowedOps RepoCheckoutAtOptionsSepolicyPrefixFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint RepoCheckoutAtOptionsSepolicyPrefixFieldInfo = (~) CString
    type AttrTransferTypeConstraint RepoCheckoutAtOptionsSepolicyPrefixFieldInfo = (~)CString
    type AttrTransferType RepoCheckoutAtOptionsSepolicyPrefixFieldInfo = CString
    type AttrGetType RepoCheckoutAtOptionsSepolicyPrefixFieldInfo = Maybe T.Text
    type AttrLabel RepoCheckoutAtOptionsSepolicyPrefixFieldInfo = "sepolicy_prefix"
    type AttrOrigin RepoCheckoutAtOptionsSepolicyPrefixFieldInfo = RepoCheckoutAtOptions
    attrGet = getRepoCheckoutAtOptionsSepolicyPrefix
    attrSet = setRepoCheckoutAtOptionsSepolicyPrefix
    attrConstruct = undefined
    attrClear = clearRepoCheckoutAtOptionsSepolicyPrefix
    attrTransfer _ v = do
        return v

repoCheckoutAtOptions_sepolicyPrefix :: AttrLabelProxy "sepolicyPrefix"
repoCheckoutAtOptions_sepolicyPrefix = AttrLabelProxy

#endif



#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList RepoCheckoutAtOptions
type instance O.AttributeList RepoCheckoutAtOptions = RepoCheckoutAtOptionsAttributeList
type RepoCheckoutAtOptionsAttributeList = ('[ '("mode", RepoCheckoutAtOptionsModeFieldInfo), '("overwriteMode", RepoCheckoutAtOptionsOverwriteModeFieldInfo), '("enableUncompressedCache", RepoCheckoutAtOptionsEnableUncompressedCacheFieldInfo), '("enableFsync", RepoCheckoutAtOptionsEnableFsyncFieldInfo), '("processWhiteouts", RepoCheckoutAtOptionsProcessWhiteoutsFieldInfo), '("noCopyFallback", RepoCheckoutAtOptionsNoCopyFallbackFieldInfo), '("forceCopy", RepoCheckoutAtOptionsForceCopyFieldInfo), '("bareuseronlyDirs", RepoCheckoutAtOptionsBareuseronlyDirsFieldInfo), '("forceCopyZerosized", RepoCheckoutAtOptionsForceCopyZerosizedFieldInfo), '("subpath", RepoCheckoutAtOptionsSubpathFieldInfo), '("devinoToCsumCache", RepoCheckoutAtOptionsDevinoToCsumCacheFieldInfo), '("filter", RepoCheckoutAtOptionsFilterFieldInfo), '("filterUserData", RepoCheckoutAtOptionsFilterUserDataFieldInfo), '("sepolicy", RepoCheckoutAtOptionsSepolicyFieldInfo), '("sepolicyPrefix", RepoCheckoutAtOptionsSepolicyPrefixFieldInfo)] :: [(Symbol, *)])
#endif

-- method RepoCheckoutAtOptions::set_devino
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "opts"
--           , argType =
--               TInterface
--                 Name { namespace = "OSTree" , name = "RepoCheckoutAtOptions" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "Checkout options" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "cache"
--           , argType =
--               TInterface Name { namespace = "OSTree" , name = "RepoDevInoCache" }
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "Devino cache" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "ostree_repo_checkout_at_options_set_devino" ostree_repo_checkout_at_options_set_devino :: 
    Ptr RepoCheckoutAtOptions ->            -- opts : TInterface (Name {namespace = "OSTree", name = "RepoCheckoutAtOptions"})
    Ptr OSTree.RepoDevInoCache.RepoDevInoCache -> -- cache : TInterface (Name {namespace = "OSTree", name = "RepoDevInoCache"})
    IO ()

-- | This function simply assigns /@cache@/ to the @devino_to_csum_cache@ member of
-- /@opts@/; it\'s only useful for introspection.
-- 
-- Note that cache does *not* have its refcount incremented - the lifetime of
-- /@cache@/ must be equal to or greater than that of /@opts@/.
repoCheckoutAtOptionsSetDevino ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    RepoCheckoutAtOptions
    -- ^ /@opts@/: Checkout options
    -> Maybe (OSTree.RepoDevInoCache.RepoDevInoCache)
    -- ^ /@cache@/: Devino cache
    -> m ()
repoCheckoutAtOptionsSetDevino :: RepoCheckoutAtOptions -> Maybe RepoDevInoCache -> m ()
repoCheckoutAtOptionsSetDevino opts :: RepoCheckoutAtOptions
opts cache :: Maybe RepoDevInoCache
cache = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr RepoCheckoutAtOptions
opts' <- RepoCheckoutAtOptions -> IO (Ptr RepoCheckoutAtOptions)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr RepoCheckoutAtOptions
opts
    Ptr RepoDevInoCache
maybeCache <- case Maybe RepoDevInoCache
cache of
        Nothing -> Ptr RepoDevInoCache -> IO (Ptr RepoDevInoCache)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr RepoDevInoCache
forall a. Ptr a
nullPtr
        Just jCache :: RepoDevInoCache
jCache -> do
            Ptr RepoDevInoCache
jCache' <- RepoDevInoCache -> IO (Ptr RepoDevInoCache)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr RepoDevInoCache
jCache
            Ptr RepoDevInoCache -> IO (Ptr RepoDevInoCache)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr RepoDevInoCache
jCache'
    Ptr RepoCheckoutAtOptions -> Ptr RepoDevInoCache -> IO ()
ostree_repo_checkout_at_options_set_devino Ptr RepoCheckoutAtOptions
opts' Ptr RepoDevInoCache
maybeCache
    RepoCheckoutAtOptions -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr RepoCheckoutAtOptions
opts
    Maybe RepoDevInoCache -> (RepoDevInoCache -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe RepoDevInoCache
cache RepoDevInoCache -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data RepoCheckoutAtOptionsSetDevinoMethodInfo
instance (signature ~ (Maybe (OSTree.RepoDevInoCache.RepoDevInoCache) -> m ()), MonadIO m) => O.MethodInfo RepoCheckoutAtOptionsSetDevinoMethodInfo RepoCheckoutAtOptions signature where
    overloadedMethod = repoCheckoutAtOptionsSetDevino

#endif

#if defined(ENABLE_OVERLOADING)
type family ResolveRepoCheckoutAtOptionsMethod (t :: Symbol) (o :: *) :: * where
    ResolveRepoCheckoutAtOptionsMethod "setDevino" o = RepoCheckoutAtOptionsSetDevinoMethodInfo
    ResolveRepoCheckoutAtOptionsMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveRepoCheckoutAtOptionsMethod t RepoCheckoutAtOptions, O.MethodInfo info RepoCheckoutAtOptions p) => OL.IsLabel t (RepoCheckoutAtOptions -> p) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.overloadedMethod @info
#else
    fromLabel _ = O.overloadedMethod @info
#endif

#endif