gi-ggit-1.0.4: GI/Ggit/Structs/RevertOptions.hs
{- |
Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License : LGPL-2.1
Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)
Represents the options used when reverting.
-}
#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.Ggit.Structs.RevertOptions
(
-- * Exported types
RevertOptions(..) ,
noRevertOptions ,
-- * Methods
-- ** copy #method:copy#
#if ENABLE_OVERLOADING
RevertOptionsCopyMethodInfo ,
#endif
revertOptionsCopy ,
-- ** free #method:free#
#if ENABLE_OVERLOADING
RevertOptionsFreeMethodInfo ,
#endif
revertOptionsFree ,
-- ** new #method:new#
revertOptionsNew ,
) 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.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.Objects.CheckoutOptions as Ggit.CheckoutOptions
import {-# SOURCE #-} qualified GI.Ggit.Structs.MergeOptions as Ggit.MergeOptions
-- | Memory-managed wrapper type.
newtype RevertOptions = RevertOptions (ManagedPtr RevertOptions)
foreign import ccall "ggit_revert_options_get_type" c_ggit_revert_options_get_type ::
IO GType
instance BoxedObject RevertOptions where
boxedType _ = c_ggit_revert_options_get_type
-- | A convenience alias for `Nothing` :: `Maybe` `RevertOptions`.
noRevertOptions :: Maybe RevertOptions
noRevertOptions = Nothing
#if ENABLE_OVERLOADING
instance O.HasAttributeList RevertOptions
type instance O.AttributeList RevertOptions = RevertOptionsAttributeList
type RevertOptionsAttributeList = ('[ ] :: [(Symbol, *)])
#endif
-- method RevertOptions::new
-- method type : Constructor
-- Args : [Arg {argCName = "mainline", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the mainline.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "merge_options", argType = TInterface (Name {namespace = "Ggit", name = "MergeOptions"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GgitMergeOptions.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "checkout_options", argType = TInterface (Name {namespace = "Ggit", name = "CheckoutOptions"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GgitCheckoutOptions.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Ggit", name = "RevertOptions"}))
-- throws : False
-- Skip return : False
foreign import ccall "ggit_revert_options_new" ggit_revert_options_new ::
Word32 -> -- mainline : TBasicType TUInt
Ptr Ggit.MergeOptions.MergeOptions -> -- merge_options : TInterface (Name {namespace = "Ggit", name = "MergeOptions"})
Ptr Ggit.CheckoutOptions.CheckoutOptions -> -- checkout_options : TInterface (Name {namespace = "Ggit", name = "CheckoutOptions"})
IO (Ptr RevertOptions)
{- |
Create a new 'GI.Ggit.Structs.RevertOptions.RevertOptions'. Note that the passed in /@mergeOptions@/ and
/@checkoutOptions@/ are copied by this function, and alterations in either
after this call are therefore not reflected in the revert options.
The /@mainline@/ indicates which parent to use for the revert when reverting
a merge commit.
-}
revertOptionsNew ::
(B.CallStack.HasCallStack, MonadIO m, Ggit.CheckoutOptions.IsCheckoutOptions a) =>
Word32
{- ^ /@mainline@/: the mainline. -}
-> Maybe (Ggit.MergeOptions.MergeOptions)
{- ^ /@mergeOptions@/: a 'GI.Ggit.Structs.MergeOptions.MergeOptions'. -}
-> Maybe (a)
{- ^ /@checkoutOptions@/: a 'GI.Ggit.Objects.CheckoutOptions.CheckoutOptions'. -}
-> m (Maybe RevertOptions)
{- ^ __Returns:__ a 'GI.Ggit.Structs.RevertOptions.RevertOptions' or 'Nothing'. -}
revertOptionsNew mainline mergeOptions checkoutOptions = liftIO $ do
maybeMergeOptions <- case mergeOptions of
Nothing -> return nullPtr
Just jMergeOptions -> do
jMergeOptions' <- unsafeManagedPtrGetPtr jMergeOptions
return jMergeOptions'
maybeCheckoutOptions <- case checkoutOptions of
Nothing -> return nullPtr
Just jCheckoutOptions -> do
jCheckoutOptions' <- unsafeManagedPtrCastPtr jCheckoutOptions
return jCheckoutOptions'
result <- ggit_revert_options_new mainline maybeMergeOptions maybeCheckoutOptions
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (wrapBoxed RevertOptions) result'
return result''
whenJust mergeOptions touchManagedPtr
whenJust checkoutOptions touchManagedPtr
return maybeResult
#if ENABLE_OVERLOADING
#endif
-- method RevertOptions::copy
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "revert_options", argType = TInterface (Name {namespace = "Ggit", name = "RevertOptions"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GgitRevertOptions.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Ggit", name = "RevertOptions"}))
-- throws : False
-- Skip return : False
foreign import ccall "ggit_revert_options_copy" ggit_revert_options_copy ::
Ptr RevertOptions -> -- revert_options : TInterface (Name {namespace = "Ggit", name = "RevertOptions"})
IO (Ptr RevertOptions)
{- |
Copies /@revertOptions@/ into a newly allocated 'GI.Ggit.Structs.RevertOptions.RevertOptions'.
-}
revertOptionsCopy ::
(B.CallStack.HasCallStack, MonadIO m) =>
RevertOptions
{- ^ /@revertOptions@/: a 'GI.Ggit.Structs.RevertOptions.RevertOptions'. -}
-> m (Maybe RevertOptions)
{- ^ __Returns:__ a newly allocated 'GI.Ggit.Structs.RevertOptions.RevertOptions' or 'Nothing'. -}
revertOptionsCopy revertOptions = liftIO $ do
revertOptions' <- unsafeManagedPtrGetPtr revertOptions
result <- ggit_revert_options_copy revertOptions'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (wrapBoxed RevertOptions) result'
return result''
touchManagedPtr revertOptions
return maybeResult
#if ENABLE_OVERLOADING
data RevertOptionsCopyMethodInfo
instance (signature ~ (m (Maybe RevertOptions)), MonadIO m) => O.MethodInfo RevertOptionsCopyMethodInfo RevertOptions signature where
overloadedMethod _ = revertOptionsCopy
#endif
-- method RevertOptions::free
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "revert_options", argType = TInterface (Name {namespace = "Ggit", name = "RevertOptions"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GgitRevertOptions.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "ggit_revert_options_free" ggit_revert_options_free ::
Ptr RevertOptions -> -- revert_options : TInterface (Name {namespace = "Ggit", name = "RevertOptions"})
IO ()
{- |
Frees /@revertOptions@/.
-}
revertOptionsFree ::
(B.CallStack.HasCallStack, MonadIO m) =>
RevertOptions
{- ^ /@revertOptions@/: a 'GI.Ggit.Structs.RevertOptions.RevertOptions'. -}
-> m ()
revertOptionsFree revertOptions = liftIO $ do
revertOptions' <- unsafeManagedPtrGetPtr revertOptions
ggit_revert_options_free revertOptions'
touchManagedPtr revertOptions
return ()
#if ENABLE_OVERLOADING
data RevertOptionsFreeMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo RevertOptionsFreeMethodInfo RevertOptions signature where
overloadedMethod _ = revertOptionsFree
#endif
#if ENABLE_OVERLOADING
type family ResolveRevertOptionsMethod (t :: Symbol) (o :: *) :: * where
ResolveRevertOptionsMethod "copy" o = RevertOptionsCopyMethodInfo
ResolveRevertOptionsMethod "free" o = RevertOptionsFreeMethodInfo
ResolveRevertOptionsMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveRevertOptionsMethod t RevertOptions, O.MethodInfo info RevertOptions p) => OL.IsLabel t (RevertOptions -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#else
fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif
#endif