{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.Ggit.Structs.FetchOptions
(
FetchOptions(..) ,
noFetchOptions ,
#if defined(ENABLE_OVERLOADING)
ResolveFetchOptionsMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
FetchOptionsCopyMethodInfo ,
#endif
fetchOptionsCopy ,
#if defined(ENABLE_OVERLOADING)
FetchOptionsFreeMethodInfo ,
#endif
fetchOptionsFree ,
#if defined(ENABLE_OVERLOADING)
FetchOptionsGetDownloadTagsMethodInfo ,
#endif
fetchOptionsGetDownloadTags ,
#if defined(ENABLE_OVERLOADING)
FetchOptionsGetRemoteCallbacksMethodInfo,
#endif
fetchOptionsGetRemoteCallbacks ,
fetchOptionsNew ,
#if defined(ENABLE_OVERLOADING)
FetchOptionsSetDownloadTagsMethodInfo ,
#endif
fetchOptionsSetDownloadTags ,
#if defined(ENABLE_OVERLOADING)
FetchOptionsSetRemoteCallbacksMethodInfo,
#endif
fetchOptionsSetRemoteCallbacks ,
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.GI.Base.Signals as B.Signals
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import {-# SOURCE #-} qualified GI.Ggit.Enums as Ggit.Enums
import {-# SOURCE #-} qualified GI.Ggit.Objects.RemoteCallbacks as Ggit.RemoteCallbacks
newtype FetchOptions = FetchOptions (ManagedPtr FetchOptions)
deriving (Eq)
foreign import ccall "ggit_fetch_options_get_type" c_ggit_fetch_options_get_type ::
IO GType
instance BoxedObject FetchOptions where
boxedType _ = c_ggit_fetch_options_get_type
instance B.GValue.IsGValue FetchOptions where
toGValue o = do
gtype <- c_ggit_fetch_options_get_type
B.ManagedPtr.withManagedPtr o (B.GValue.buildGValue gtype B.GValue.set_boxed)
fromGValue gv = do
ptr <- B.GValue.get_boxed gv :: IO (Ptr FetchOptions)
B.ManagedPtr.newBoxed FetchOptions ptr
noFetchOptions :: Maybe FetchOptions
noFetchOptions = Nothing
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList FetchOptions
type instance O.AttributeList FetchOptions = FetchOptionsAttributeList
type FetchOptionsAttributeList = ('[ ] :: [(Symbol, *)])
#endif
foreign import ccall "ggit_fetch_options_new" ggit_fetch_options_new ::
IO (Ptr FetchOptions)
fetchOptionsNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
m FetchOptions
fetchOptionsNew = liftIO $ do
result <- ggit_fetch_options_new
checkUnexpectedReturnNULL "fetchOptionsNew" result
result' <- (wrapBoxed FetchOptions) result
return result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "ggit_fetch_options_copy" ggit_fetch_options_copy ::
Ptr FetchOptions ->
IO (Ptr FetchOptions)
fetchOptionsCopy ::
(B.CallStack.HasCallStack, MonadIO m) =>
FetchOptions
-> m (Maybe FetchOptions)
fetchOptionsCopy fetchOptions = liftIO $ do
fetchOptions' <- unsafeManagedPtrGetPtr fetchOptions
result <- ggit_fetch_options_copy fetchOptions'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (wrapBoxed FetchOptions) result'
return result''
touchManagedPtr fetchOptions
return maybeResult
#if defined(ENABLE_OVERLOADING)
data FetchOptionsCopyMethodInfo
instance (signature ~ (m (Maybe FetchOptions)), MonadIO m) => O.MethodInfo FetchOptionsCopyMethodInfo FetchOptions signature where
overloadedMethod = fetchOptionsCopy
#endif
foreign import ccall "ggit_fetch_options_free" ggit_fetch_options_free ::
Ptr FetchOptions ->
IO ()
fetchOptionsFree ::
(B.CallStack.HasCallStack, MonadIO m) =>
FetchOptions
-> m ()
fetchOptionsFree fetchOptions = liftIO $ do
fetchOptions' <- unsafeManagedPtrGetPtr fetchOptions
ggit_fetch_options_free fetchOptions'
touchManagedPtr fetchOptions
return ()
#if defined(ENABLE_OVERLOADING)
data FetchOptionsFreeMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo FetchOptionsFreeMethodInfo FetchOptions signature where
overloadedMethod = fetchOptionsFree
#endif
foreign import ccall "ggit_fetch_options_get_download_tags" ggit_fetch_options_get_download_tags ::
Ptr FetchOptions ->
IO CUInt
fetchOptionsGetDownloadTags ::
(B.CallStack.HasCallStack, MonadIO m) =>
FetchOptions
-> m Ggit.Enums.RemoteDownloadTagsType
fetchOptionsGetDownloadTags options = liftIO $ do
options' <- unsafeManagedPtrGetPtr options
result <- ggit_fetch_options_get_download_tags options'
let result' = (toEnum . fromIntegral) result
touchManagedPtr options
return result'
#if defined(ENABLE_OVERLOADING)
data FetchOptionsGetDownloadTagsMethodInfo
instance (signature ~ (m Ggit.Enums.RemoteDownloadTagsType), MonadIO m) => O.MethodInfo FetchOptionsGetDownloadTagsMethodInfo FetchOptions signature where
overloadedMethod = fetchOptionsGetDownloadTags
#endif
foreign import ccall "ggit_fetch_options_get_remote_callbacks" ggit_fetch_options_get_remote_callbacks ::
Ptr FetchOptions ->
IO (Ptr Ggit.RemoteCallbacks.RemoteCallbacks)
fetchOptionsGetRemoteCallbacks ::
(B.CallStack.HasCallStack, MonadIO m) =>
FetchOptions
-> m (Maybe Ggit.RemoteCallbacks.RemoteCallbacks)
fetchOptionsGetRemoteCallbacks options = liftIO $ do
options' <- unsafeManagedPtrGetPtr options
result <- ggit_fetch_options_get_remote_callbacks options'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (newObject Ggit.RemoteCallbacks.RemoteCallbacks) result'
return result''
touchManagedPtr options
return maybeResult
#if defined(ENABLE_OVERLOADING)
data FetchOptionsGetRemoteCallbacksMethodInfo
instance (signature ~ (m (Maybe Ggit.RemoteCallbacks.RemoteCallbacks)), MonadIO m) => O.MethodInfo FetchOptionsGetRemoteCallbacksMethodInfo FetchOptions signature where
overloadedMethod = fetchOptionsGetRemoteCallbacks
#endif
foreign import ccall "ggit_fetch_options_set_download_tags" ggit_fetch_options_set_download_tags ::
Ptr FetchOptions ->
CUInt ->
IO ()
fetchOptionsSetDownloadTags ::
(B.CallStack.HasCallStack, MonadIO m) =>
FetchOptions
-> Ggit.Enums.RemoteDownloadTagsType
-> m ()
fetchOptionsSetDownloadTags options downloadTags = liftIO $ do
options' <- unsafeManagedPtrGetPtr options
let downloadTags' = (fromIntegral . fromEnum) downloadTags
ggit_fetch_options_set_download_tags options' downloadTags'
touchManagedPtr options
return ()
#if defined(ENABLE_OVERLOADING)
data FetchOptionsSetDownloadTagsMethodInfo
instance (signature ~ (Ggit.Enums.RemoteDownloadTagsType -> m ()), MonadIO m) => O.MethodInfo FetchOptionsSetDownloadTagsMethodInfo FetchOptions signature where
overloadedMethod = fetchOptionsSetDownloadTags
#endif
foreign import ccall "ggit_fetch_options_set_remote_callbacks" ggit_fetch_options_set_remote_callbacks ::
Ptr FetchOptions ->
Ptr Ggit.RemoteCallbacks.RemoteCallbacks ->
IO ()
fetchOptionsSetRemoteCallbacks ::
(B.CallStack.HasCallStack, MonadIO m, Ggit.RemoteCallbacks.IsRemoteCallbacks a) =>
FetchOptions
-> Maybe (a)
-> m ()
fetchOptionsSetRemoteCallbacks options callbacks = liftIO $ do
options' <- unsafeManagedPtrGetPtr options
maybeCallbacks <- case callbacks of
Nothing -> return nullPtr
Just jCallbacks -> do
jCallbacks' <- unsafeManagedPtrCastPtr jCallbacks
return jCallbacks'
ggit_fetch_options_set_remote_callbacks options' maybeCallbacks
touchManagedPtr options
whenJust callbacks touchManagedPtr
return ()
#if defined(ENABLE_OVERLOADING)
data FetchOptionsSetRemoteCallbacksMethodInfo
instance (signature ~ (Maybe (a) -> m ()), MonadIO m, Ggit.RemoteCallbacks.IsRemoteCallbacks a) => O.MethodInfo FetchOptionsSetRemoteCallbacksMethodInfo FetchOptions signature where
overloadedMethod = fetchOptionsSetRemoteCallbacks
#endif
#if defined(ENABLE_OVERLOADING)
type family ResolveFetchOptionsMethod (t :: Symbol) (o :: *) :: * where
ResolveFetchOptionsMethod "copy" o = FetchOptionsCopyMethodInfo
ResolveFetchOptionsMethod "free" o = FetchOptionsFreeMethodInfo
ResolveFetchOptionsMethod "getDownloadTags" o = FetchOptionsGetDownloadTagsMethodInfo
ResolveFetchOptionsMethod "getRemoteCallbacks" o = FetchOptionsGetRemoteCallbacksMethodInfo
ResolveFetchOptionsMethod "setDownloadTags" o = FetchOptionsSetDownloadTagsMethodInfo
ResolveFetchOptionsMethod "setRemoteCallbacks" o = FetchOptionsSetRemoteCallbacksMethodInfo
ResolveFetchOptionsMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveFetchOptionsMethod t FetchOptions, O.MethodInfo info FetchOptions p) => OL.IsLabel t (FetchOptions -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod @info
#else
fromLabel _ = O.overloadedMethod @info
#endif
#endif