module GI.Vte.Structs.Regex
(
Regex(..) ,
noRegex ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
RegexJitMethodInfo ,
#endif
regexJit ,
regexNewForMatch ,
regexNewForSearch ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
RegexRefMethodInfo ,
#endif
regexRef ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
RegexUnrefMethodInfo ,
#endif
regexUnref ,
) 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.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
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
newtype Regex = Regex (ManagedPtr Regex)
foreign import ccall "vte_regex_get_type" c_vte_regex_get_type ::
IO GType
instance BoxedObject Regex where
boxedType _ = c_vte_regex_get_type
noRegex :: Maybe Regex
noRegex = Nothing
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
instance O.HasAttributeList Regex
type instance O.AttributeList Regex = RegexAttributeList
type RegexAttributeList = ('[ ] :: [(Symbol, *)])
#endif
foreign import ccall "vte_regex_new_for_match" vte_regex_new_for_match ::
CString ->
Int64 ->
Word32 ->
Ptr (Ptr GError) ->
IO (Ptr Regex)
regexNewForMatch ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> Int64
-> Word32
-> m Regex
regexNewForMatch pattern patternLength flags = liftIO $ do
pattern' <- textToCString pattern
onException (do
result <- propagateGError $ vte_regex_new_for_match pattern' patternLength flags
checkUnexpectedReturnNULL "regexNewForMatch" result
result' <- (wrapBoxed Regex) result
freeMem pattern'
return result'
) (do
freeMem pattern'
)
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
#endif
foreign import ccall "vte_regex_new_for_search" vte_regex_new_for_search ::
CString ->
Int64 ->
Word32 ->
Ptr (Ptr GError) ->
IO (Ptr Regex)
regexNewForSearch ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> Int64
-> Word32
-> m Regex
regexNewForSearch pattern patternLength flags = liftIO $ do
pattern' <- textToCString pattern
onException (do
result <- propagateGError $ vte_regex_new_for_search pattern' patternLength flags
checkUnexpectedReturnNULL "regexNewForSearch" result
result' <- (wrapBoxed Regex) result
freeMem pattern'
return result'
) (do
freeMem pattern'
)
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
#endif
foreign import ccall "vte_regex_jit" vte_regex_jit ::
Ptr Regex ->
Word32 ->
Ptr (Ptr GError) ->
IO CInt
regexJit ::
(B.CallStack.HasCallStack, MonadIO m) =>
Regex
-> Word32
-> m ()
regexJit regex flags = liftIO $ do
regex' <- unsafeManagedPtrGetPtr regex
onException (do
_ <- propagateGError $ vte_regex_jit regex' flags
touchManagedPtr regex
return ()
) (do
return ()
)
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data RegexJitMethodInfo
instance (signature ~ (Word32 -> m ()), MonadIO m) => O.MethodInfo RegexJitMethodInfo Regex signature where
overloadedMethod _ = regexJit
#endif
foreign import ccall "vte_regex_ref" vte_regex_ref ::
Ptr Regex ->
IO (Ptr Regex)
regexRef ::
(B.CallStack.HasCallStack, MonadIO m) =>
Regex
-> m Regex
regexRef regex = liftIO $ do
regex' <- unsafeManagedPtrGetPtr regex
result <- vte_regex_ref regex'
checkUnexpectedReturnNULL "regexRef" result
result' <- (wrapBoxed Regex) result
touchManagedPtr regex
return result'
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data RegexRefMethodInfo
instance (signature ~ (m Regex), MonadIO m) => O.MethodInfo RegexRefMethodInfo Regex signature where
overloadedMethod _ = regexRef
#endif
foreign import ccall "vte_regex_unref" vte_regex_unref ::
Ptr Regex ->
IO (Ptr Regex)
regexUnref ::
(B.CallStack.HasCallStack, MonadIO m) =>
Regex
-> m Regex
regexUnref regex = liftIO $ do
regex' <- unsafeManagedPtrGetPtr regex
result <- vte_regex_unref regex'
checkUnexpectedReturnNULL "regexUnref" result
result' <- (wrapBoxed Regex) result
touchManagedPtr regex
return result'
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data RegexUnrefMethodInfo
instance (signature ~ (m Regex), MonadIO m) => O.MethodInfo RegexUnrefMethodInfo Regex signature where
overloadedMethod _ = regexUnref
#endif
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
type family ResolveRegexMethod (t :: Symbol) (o :: *) :: * where
ResolveRegexMethod "jit" o = RegexJitMethodInfo
ResolveRegexMethod "ref" o = RegexRefMethodInfo
ResolveRegexMethod "unref" o = RegexUnrefMethodInfo
ResolveRegexMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveRegexMethod t Regex, O.MethodInfo info Regex p) => O.IsLabelProxy t (Regex -> p) where
fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveRegexMethod t Regex, O.MethodInfo info Regex p) => O.IsLabel t (Regex -> 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
#endif