gi-ggit-1.0.4: GI/Ggit/Structs/DiffSimilarityMetric.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 a similarity metric.
-}
#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.Ggit.Structs.DiffSimilarityMetric
(
-- * Exported types
DiffSimilarityMetric(..) ,
noDiffSimilarityMetric ,
-- * Methods
-- ** copy #method:copy#
#if ENABLE_OVERLOADING
DiffSimilarityMetricCopyMethodInfo ,
#endif
diffSimilarityMetricCopy ,
-- ** free #method:free#
#if ENABLE_OVERLOADING
DiffSimilarityMetricFreeMethodInfo ,
#endif
diffSimilarityMetricFree ,
-- ** new #method:new#
diffSimilarityMetricNew ,
) 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 qualified GI.Ggit.Callbacks as Ggit.Callbacks
-- | Memory-managed wrapper type.
newtype DiffSimilarityMetric = DiffSimilarityMetric (ManagedPtr DiffSimilarityMetric)
foreign import ccall "ggit_diff_similarity_metric_get_type" c_ggit_diff_similarity_metric_get_type ::
IO GType
instance BoxedObject DiffSimilarityMetric where
boxedType _ = c_ggit_diff_similarity_metric_get_type
-- | A convenience alias for `Nothing` :: `Maybe` `DiffSimilarityMetric`.
noDiffSimilarityMetric :: Maybe DiffSimilarityMetric
noDiffSimilarityMetric = Nothing
#if ENABLE_OVERLOADING
instance O.HasAttributeList DiffSimilarityMetric
type instance O.AttributeList DiffSimilarityMetric = DiffSimilarityMetricAttributeList
type DiffSimilarityMetricAttributeList = ('[ ] :: [(Symbol, *)])
#endif
-- method DiffSimilarityMetric::new
-- method type : Constructor
-- Args : [Arg {argCName = "file_signature", argType = TInterface (Name {namespace = "Ggit", name = "DiffSimilarityMetricFileSignatureCallback"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GgitDiffSimilarityMetricFileSignature.", sinceVersion = Nothing}, argScope = ScopeTypeCall, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buffer_signature", argType = TInterface (Name {namespace = "Ggit", name = "DiffSimilarityMetricBufferSignatureCallback"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GgitDiffSimilarityMetricBufferSignature.", sinceVersion = Nothing}, argScope = ScopeTypeCall, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "free_signature", argType = TInterface (Name {namespace = "Ggit", name = "DiffSimilarityMetricFreeSignatureCallback"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GgitDiffSimilarityMetricFreeSignature.", sinceVersion = Nothing}, argScope = ScopeTypeCall, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "similarity", argType = TInterface (Name {namespace = "Ggit", name = "DiffSimilarityMetricSimilarityCallback"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GgitDiffSimilarityMetricSimilarity.", sinceVersion = Nothing}, argScope = ScopeTypeCall, argClosure = 4, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "passed as user_data to the previous parameters.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Ggit", name = "DiffSimilarityMetric"}))
-- throws : False
-- Skip return : False
foreign import ccall "ggit_diff_similarity_metric_new" ggit_diff_similarity_metric_new ::
FunPtr Ggit.Callbacks.C_DiffSimilarityMetricFileSignatureCallback -> -- file_signature : TInterface (Name {namespace = "Ggit", name = "DiffSimilarityMetricFileSignatureCallback"})
FunPtr Ggit.Callbacks.C_DiffSimilarityMetricBufferSignatureCallback -> -- buffer_signature : TInterface (Name {namespace = "Ggit", name = "DiffSimilarityMetricBufferSignatureCallback"})
FunPtr Ggit.Callbacks.C_DiffSimilarityMetricFreeSignatureCallback -> -- free_signature : TInterface (Name {namespace = "Ggit", name = "DiffSimilarityMetricFreeSignatureCallback"})
FunPtr Ggit.Callbacks.C_DiffSimilarityMetricSimilarityCallback -> -- similarity : TInterface (Name {namespace = "Ggit", name = "DiffSimilarityMetricSimilarityCallback"})
Ptr () -> -- user_data : TBasicType TPtr
IO (Ptr DiffSimilarityMetric)
{- |
Creates a new 'GI.Ggit.Structs.DiffSimilarityMetric.DiffSimilarityMetric'.
-}
diffSimilarityMetricNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
Ggit.Callbacks.DiffSimilarityMetricFileSignatureCallback
{- ^ /@fileSignature@/: a @/GgitDiffSimilarityMetricFileSignature/@. -}
-> Ggit.Callbacks.DiffSimilarityMetricBufferSignatureCallback
{- ^ /@bufferSignature@/: a @/GgitDiffSimilarityMetricBufferSignature/@. -}
-> Ggit.Callbacks.DiffSimilarityMetricFreeSignatureCallback
{- ^ /@freeSignature@/: a @/GgitDiffSimilarityMetricFreeSignature/@. -}
-> Ggit.Callbacks.DiffSimilarityMetricSimilarityCallback
{- ^ /@similarity@/: a @/GgitDiffSimilarityMetricSimilarity/@. -}
-> m DiffSimilarityMetric
{- ^ __Returns:__ a newly allocated 'GI.Ggit.Structs.DiffSimilarityMetric.DiffSimilarityMetric'. -}
diffSimilarityMetricNew fileSignature bufferSignature freeSignature similarity = liftIO $ do
fileSignature' <- Ggit.Callbacks.mk_DiffSimilarityMetricFileSignatureCallback (Ggit.Callbacks.wrap_DiffSimilarityMetricFileSignatureCallback Nothing (Ggit.Callbacks.drop_closures_DiffSimilarityMetricFileSignatureCallback fileSignature))
bufferSignature' <- Ggit.Callbacks.mk_DiffSimilarityMetricBufferSignatureCallback (Ggit.Callbacks.wrap_DiffSimilarityMetricBufferSignatureCallback Nothing (Ggit.Callbacks.drop_closures_DiffSimilarityMetricBufferSignatureCallback bufferSignature))
freeSignature' <- Ggit.Callbacks.mk_DiffSimilarityMetricFreeSignatureCallback (Ggit.Callbacks.wrap_DiffSimilarityMetricFreeSignatureCallback Nothing (Ggit.Callbacks.drop_closures_DiffSimilarityMetricFreeSignatureCallback freeSignature))
similarity' <- Ggit.Callbacks.mk_DiffSimilarityMetricSimilarityCallback (Ggit.Callbacks.wrap_DiffSimilarityMetricSimilarityCallback Nothing (Ggit.Callbacks.drop_closures_DiffSimilarityMetricSimilarityCallback similarity))
let userData = nullPtr
result <- ggit_diff_similarity_metric_new fileSignature' bufferSignature' freeSignature' similarity' userData
checkUnexpectedReturnNULL "diffSimilarityMetricNew" result
result' <- (wrapBoxed DiffSimilarityMetric) result
safeFreeFunPtr $ castFunPtrToPtr fileSignature'
safeFreeFunPtr $ castFunPtrToPtr bufferSignature'
safeFreeFunPtr $ castFunPtrToPtr freeSignature'
safeFreeFunPtr $ castFunPtrToPtr similarity'
return result'
#if ENABLE_OVERLOADING
#endif
-- method DiffSimilarityMetric::copy
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "metric", argType = TInterface (Name {namespace = "Ggit", name = "DiffSimilarityMetric"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GgitDiffSimilarityMetric.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Ggit", name = "DiffSimilarityMetric"}))
-- throws : False
-- Skip return : False
foreign import ccall "ggit_diff_similarity_metric_copy" ggit_diff_similarity_metric_copy ::
Ptr DiffSimilarityMetric -> -- metric : TInterface (Name {namespace = "Ggit", name = "DiffSimilarityMetric"})
IO (Ptr DiffSimilarityMetric)
{- |
Copies /@metric@/ into a newly allocated 'GI.Ggit.Structs.DiffSimilarityMetric.DiffSimilarityMetric'.
-}
diffSimilarityMetricCopy ::
(B.CallStack.HasCallStack, MonadIO m) =>
DiffSimilarityMetric
{- ^ /@metric@/: a 'GI.Ggit.Structs.DiffSimilarityMetric.DiffSimilarityMetric'. -}
-> m (Maybe DiffSimilarityMetric)
{- ^ __Returns:__ a newly allocated 'GI.Ggit.Structs.DiffSimilarityMetric.DiffSimilarityMetric' or 'Nothing'. -}
diffSimilarityMetricCopy metric = liftIO $ do
metric' <- unsafeManagedPtrGetPtr metric
result <- ggit_diff_similarity_metric_copy metric'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (wrapBoxed DiffSimilarityMetric) result'
return result''
touchManagedPtr metric
return maybeResult
#if ENABLE_OVERLOADING
data DiffSimilarityMetricCopyMethodInfo
instance (signature ~ (m (Maybe DiffSimilarityMetric)), MonadIO m) => O.MethodInfo DiffSimilarityMetricCopyMethodInfo DiffSimilarityMetric signature where
overloadedMethod _ = diffSimilarityMetricCopy
#endif
-- method DiffSimilarityMetric::free
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "metric", argType = TInterface (Name {namespace = "Ggit", name = "DiffSimilarityMetric"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GgitDiffSimilarityMetric.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "ggit_diff_similarity_metric_free" ggit_diff_similarity_metric_free ::
Ptr DiffSimilarityMetric -> -- metric : TInterface (Name {namespace = "Ggit", name = "DiffSimilarityMetric"})
IO ()
{- |
Frees /@metric@/.
-}
diffSimilarityMetricFree ::
(B.CallStack.HasCallStack, MonadIO m) =>
DiffSimilarityMetric
{- ^ /@metric@/: a 'GI.Ggit.Structs.DiffSimilarityMetric.DiffSimilarityMetric'. -}
-> m ()
diffSimilarityMetricFree metric = liftIO $ do
metric' <- unsafeManagedPtrGetPtr metric
ggit_diff_similarity_metric_free metric'
touchManagedPtr metric
return ()
#if ENABLE_OVERLOADING
data DiffSimilarityMetricFreeMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo DiffSimilarityMetricFreeMethodInfo DiffSimilarityMetric signature where
overloadedMethod _ = diffSimilarityMetricFree
#endif
#if ENABLE_OVERLOADING
type family ResolveDiffSimilarityMetricMethod (t :: Symbol) (o :: *) :: * where
ResolveDiffSimilarityMetricMethod "copy" o = DiffSimilarityMetricCopyMethodInfo
ResolveDiffSimilarityMetricMethod "free" o = DiffSimilarityMetricFreeMethodInfo
ResolveDiffSimilarityMetricMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveDiffSimilarityMetricMethod t DiffSimilarityMetric, O.MethodInfo info DiffSimilarityMetric p) => OL.IsLabel t (DiffSimilarityMetric -> 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