{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson and Iñaki García Etxebarria
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- /No description available in the introspection data./

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

module GI.WebKit2WebExtension.Objects.DOMCharacterData
    ( 

-- * Exported types
    DOMCharacterData(..)                    ,
    IsDOMCharacterData                      ,
    toDOMCharacterData                      ,


 -- * Methods
-- | 
-- 
--  === __Click to display all available methods, including inherited ones__
-- ==== Methods
-- [addEventListener]("GI.WebKit2WebExtension.Interfaces.DOMEventTarget#g:method:addEventListener"), [appendChild]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:appendChild"), [appendData]("GI.WebKit2WebExtension.Objects.DOMCharacterData#g:method:appendData"), [bindProperty]("GI.GObject.Objects.Object#g:method:bindProperty"), [bindPropertyFull]("GI.GObject.Objects.Object#g:method:bindPropertyFull"), [cloneNodeWithError]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:cloneNodeWithError"), [compareDocumentPosition]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:compareDocumentPosition"), [contains]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:contains"), [deleteData]("GI.WebKit2WebExtension.Objects.DOMCharacterData#g:method:deleteData"), [dispatchEvent]("GI.WebKit2WebExtension.Interfaces.DOMEventTarget#g:method:dispatchEvent"), [forceFloating]("GI.GObject.Objects.Object#g:method:forceFloating"), [freezeNotify]("GI.GObject.Objects.Object#g:method:freezeNotify"), [getv]("GI.GObject.Objects.Object#g:method:getv"), [hasChildNodes]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:hasChildNodes"), [insertBefore]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:insertBefore"), [insertData]("GI.WebKit2WebExtension.Objects.DOMCharacterData#g:method:insertData"), [isDefaultNamespace]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:isDefaultNamespace"), [isEqualNode]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:isEqualNode"), [isFloating]("GI.GObject.Objects.Object#g:method:isFloating"), [isSameNode]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:isSameNode"), [isSupported]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:isSupported"), [lookupNamespaceUri]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:lookupNamespaceUri"), [lookupPrefix]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:lookupPrefix"), [normalize]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:normalize"), [notify]("GI.GObject.Objects.Object#g:method:notify"), [notifyByPspec]("GI.GObject.Objects.Object#g:method:notifyByPspec"), [ref]("GI.GObject.Objects.Object#g:method:ref"), [refSink]("GI.GObject.Objects.Object#g:method:refSink"), [removeChild]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:removeChild"), [removeEventListener]("GI.WebKit2WebExtension.Interfaces.DOMEventTarget#g:method:removeEventListener"), [replaceChild]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:replaceChild"), [replaceData]("GI.WebKit2WebExtension.Objects.DOMCharacterData#g:method:replaceData"), [runDispose]("GI.GObject.Objects.Object#g:method:runDispose"), [stealData]("GI.GObject.Objects.Object#g:method:stealData"), [stealQdata]("GI.GObject.Objects.Object#g:method:stealQdata"), [substringData]("GI.WebKit2WebExtension.Objects.DOMCharacterData#g:method:substringData"), [thawNotify]("GI.GObject.Objects.Object#g:method:thawNotify"), [unref]("GI.GObject.Objects.Object#g:method:unref"), [watchClosure]("GI.GObject.Objects.Object#g:method:watchClosure").
-- 
-- ==== Getters
-- [getBaseUri]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:getBaseUri"), [getChildNodes]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:getChildNodes"), [getData]("GI.WebKit2WebExtension.Objects.DOMCharacterData#g:method:getData"), [getFirstChild]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:getFirstChild"), [getLastChild]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:getLastChild"), [getLength]("GI.WebKit2WebExtension.Objects.DOMCharacterData#g:method:getLength"), [getLocalName]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:getLocalName"), [getNamespaceUri]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:getNamespaceUri"), [getNextSibling]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:getNextSibling"), [getNodeName]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:getNodeName"), [getNodeType]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:getNodeType"), [getNodeValue]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:getNodeValue"), [getOwnerDocument]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:getOwnerDocument"), [getParentElement]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:getParentElement"), [getParentNode]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:getParentNode"), [getPrefix]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:getPrefix"), [getPreviousSibling]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:getPreviousSibling"), [getProperty]("GI.GObject.Objects.Object#g:method:getProperty"), [getQdata]("GI.GObject.Objects.Object#g:method:getQdata"), [getTextContent]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:getTextContent").
-- 
-- ==== Setters
-- [setData]("GI.WebKit2WebExtension.Objects.DOMCharacterData#g:method:setData"), [setDataFull]("GI.GObject.Objects.Object#g:method:setDataFull"), [setNodeValue]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:setNodeValue"), [setPrefix]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:setPrefix"), [setProperty]("GI.GObject.Objects.Object#g:method:setProperty"), [setTextContent]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:setTextContent").

#if defined(ENABLE_OVERLOADING)
    ResolveDOMCharacterDataMethod           ,
#endif

-- ** appendData #method:appendData#

#if defined(ENABLE_OVERLOADING)
    DOMCharacterDataAppendDataMethodInfo    ,
#endif
    dOMCharacterDataAppendData              ,


-- ** deleteData #method:deleteData#

#if defined(ENABLE_OVERLOADING)
    DOMCharacterDataDeleteDataMethodInfo    ,
#endif
    dOMCharacterDataDeleteData              ,


-- ** getData #method:getData#

#if defined(ENABLE_OVERLOADING)
    DOMCharacterDataGetDataMethodInfo       ,
#endif
    dOMCharacterDataGetData                 ,


-- ** getLength #method:getLength#

#if defined(ENABLE_OVERLOADING)
    DOMCharacterDataGetLengthMethodInfo     ,
#endif
    dOMCharacterDataGetLength               ,


-- ** insertData #method:insertData#

#if defined(ENABLE_OVERLOADING)
    DOMCharacterDataInsertDataMethodInfo    ,
#endif
    dOMCharacterDataInsertData              ,


-- ** replaceData #method:replaceData#

#if defined(ENABLE_OVERLOADING)
    DOMCharacterDataReplaceDataMethodInfo   ,
#endif
    dOMCharacterDataReplaceData             ,


-- ** setData #method:setData#

#if defined(ENABLE_OVERLOADING)
    DOMCharacterDataSetDataMethodInfo       ,
#endif
    dOMCharacterDataSetData                 ,


-- ** substringData #method:substringData#

#if defined(ENABLE_OVERLOADING)
    DOMCharacterDataSubstringDataMethodInfo ,
#endif
    dOMCharacterDataSubstringData           ,




 -- * Properties


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

#if defined(ENABLE_OVERLOADING)
    DOMCharacterDataDataPropertyInfo        ,
#endif
    clearDOMCharacterDataData               ,
    constructDOMCharacterDataData           ,
#if defined(ENABLE_OVERLOADING)
    dOMCharacterDataData                    ,
#endif
    getDOMCharacterDataData                 ,
    setDOMCharacterDataData                 ,


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

#if defined(ENABLE_OVERLOADING)
    DOMCharacterDataLengthPropertyInfo      ,
#endif
#if defined(ENABLE_OVERLOADING)
    dOMCharacterDataLength                  ,
#endif
    getDOMCharacterDataLength               ,




    ) 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.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GHashTable as B.GHT
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 Control.Monad.IO.Class as MIO
import qualified Data.Coerce as Coerce
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 GHC.Records as R

import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Interfaces.DOMEventTarget as WebKit2WebExtension.DOMEventTarget
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMNode as WebKit2WebExtension.DOMNode
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMObject as WebKit2WebExtension.DOMObject

-- | Memory-managed wrapper type.
newtype DOMCharacterData = DOMCharacterData (SP.ManagedPtr DOMCharacterData)
    deriving (DOMCharacterData -> DOMCharacterData -> Bool
(DOMCharacterData -> DOMCharacterData -> Bool)
-> (DOMCharacterData -> DOMCharacterData -> Bool)
-> Eq DOMCharacterData
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DOMCharacterData -> DOMCharacterData -> Bool
== :: DOMCharacterData -> DOMCharacterData -> Bool
$c/= :: DOMCharacterData -> DOMCharacterData -> Bool
/= :: DOMCharacterData -> DOMCharacterData -> Bool
Eq)

instance SP.ManagedPtrNewtype DOMCharacterData where
    toManagedPtr :: DOMCharacterData -> ManagedPtr DOMCharacterData
toManagedPtr (DOMCharacterData ManagedPtr DOMCharacterData
p) = ManagedPtr DOMCharacterData
p

foreign import ccall "webkit_dom_character_data_get_type"
    c_webkit_dom_character_data_get_type :: IO B.Types.GType

instance B.Types.TypedObject DOMCharacterData where
    glibType :: IO GType
glibType = IO GType
c_webkit_dom_character_data_get_type

instance B.Types.GObject DOMCharacterData

-- | Type class for types which can be safely cast to `DOMCharacterData`, for instance with `toDOMCharacterData`.
class (SP.GObject o, O.IsDescendantOf DOMCharacterData o) => IsDOMCharacterData o
instance (SP.GObject o, O.IsDescendantOf DOMCharacterData o) => IsDOMCharacterData o

instance O.HasParentTypes DOMCharacterData
type instance O.ParentTypes DOMCharacterData = '[WebKit2WebExtension.DOMNode.DOMNode, WebKit2WebExtension.DOMObject.DOMObject, GObject.Object.Object, WebKit2WebExtension.DOMEventTarget.DOMEventTarget]

-- | Cast to `DOMCharacterData`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.
toDOMCharacterData :: (MIO.MonadIO m, IsDOMCharacterData o) => o -> m DOMCharacterData
toDOMCharacterData :: forall (m :: * -> *) o.
(MonadIO m, IsDOMCharacterData o) =>
o -> m DOMCharacterData
toDOMCharacterData = IO DOMCharacterData -> m DOMCharacterData
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO DOMCharacterData -> m DOMCharacterData)
-> (o -> IO DOMCharacterData) -> o -> m DOMCharacterData
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr DOMCharacterData -> DOMCharacterData)
-> o -> IO DOMCharacterData
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
 ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr DOMCharacterData -> DOMCharacterData
DOMCharacterData

-- | Convert 'DOMCharacterData' to and from 'Data.GI.Base.GValue.GValue'. See 'Data.GI.Base.GValue.toGValue' and 'Data.GI.Base.GValue.fromGValue'.
instance B.GValue.IsGValue (Maybe DOMCharacterData) where
    gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_webkit_dom_character_data_get_type
    gvalueSet_ :: Ptr GValue -> Maybe DOMCharacterData -> IO ()
gvalueSet_ Ptr GValue
gv Maybe DOMCharacterData
P.Nothing = Ptr GValue -> Ptr DOMCharacterData -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr DOMCharacterData
forall a. Ptr a
FP.nullPtr :: FP.Ptr DOMCharacterData)
    gvalueSet_ Ptr GValue
gv (P.Just DOMCharacterData
obj) = DOMCharacterData -> (Ptr DOMCharacterData -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr DOMCharacterData
obj (Ptr GValue -> Ptr DOMCharacterData -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
    gvalueGet_ :: Ptr GValue -> IO (Maybe DOMCharacterData)
gvalueGet_ Ptr GValue
gv = do
        Ptr DOMCharacterData
ptr <- Ptr GValue -> IO (Ptr DOMCharacterData)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr DOMCharacterData)
        if Ptr DOMCharacterData
ptr Ptr DOMCharacterData -> Ptr DOMCharacterData -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr DOMCharacterData
forall a. Ptr a
FP.nullPtr
        then DOMCharacterData -> Maybe DOMCharacterData
forall a. a -> Maybe a
P.Just (DOMCharacterData -> Maybe DOMCharacterData)
-> IO DOMCharacterData -> IO (Maybe DOMCharacterData)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr DOMCharacterData -> DOMCharacterData)
-> Ptr DOMCharacterData -> IO DOMCharacterData
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr DOMCharacterData -> DOMCharacterData
DOMCharacterData Ptr DOMCharacterData
ptr
        else Maybe DOMCharacterData -> IO (Maybe DOMCharacterData)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe DOMCharacterData
forall a. Maybe a
P.Nothing
        
    

#if defined(ENABLE_OVERLOADING)
type family ResolveDOMCharacterDataMethod (t :: Symbol) (o :: *) :: * where
    ResolveDOMCharacterDataMethod "addEventListener" o = WebKit2WebExtension.DOMEventTarget.DOMEventTargetAddEventListenerMethodInfo
    ResolveDOMCharacterDataMethod "appendChild" o = WebKit2WebExtension.DOMNode.DOMNodeAppendChildMethodInfo
    ResolveDOMCharacterDataMethod "appendData" o = DOMCharacterDataAppendDataMethodInfo
    ResolveDOMCharacterDataMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveDOMCharacterDataMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveDOMCharacterDataMethod "cloneNodeWithError" o = WebKit2WebExtension.DOMNode.DOMNodeCloneNodeWithErrorMethodInfo
    ResolveDOMCharacterDataMethod "compareDocumentPosition" o = WebKit2WebExtension.DOMNode.DOMNodeCompareDocumentPositionMethodInfo
    ResolveDOMCharacterDataMethod "contains" o = WebKit2WebExtension.DOMNode.DOMNodeContainsMethodInfo
    ResolveDOMCharacterDataMethod "deleteData" o = DOMCharacterDataDeleteDataMethodInfo
    ResolveDOMCharacterDataMethod "dispatchEvent" o = WebKit2WebExtension.DOMEventTarget.DOMEventTargetDispatchEventMethodInfo
    ResolveDOMCharacterDataMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveDOMCharacterDataMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveDOMCharacterDataMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveDOMCharacterDataMethod "hasChildNodes" o = WebKit2WebExtension.DOMNode.DOMNodeHasChildNodesMethodInfo
    ResolveDOMCharacterDataMethod "insertBefore" o = WebKit2WebExtension.DOMNode.DOMNodeInsertBeforeMethodInfo
    ResolveDOMCharacterDataMethod "insertData" o = DOMCharacterDataInsertDataMethodInfo
    ResolveDOMCharacterDataMethod "isDefaultNamespace" o = WebKit2WebExtension.DOMNode.DOMNodeIsDefaultNamespaceMethodInfo
    ResolveDOMCharacterDataMethod "isEqualNode" o = WebKit2WebExtension.DOMNode.DOMNodeIsEqualNodeMethodInfo
    ResolveDOMCharacterDataMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveDOMCharacterDataMethod "isSameNode" o = WebKit2WebExtension.DOMNode.DOMNodeIsSameNodeMethodInfo
    ResolveDOMCharacterDataMethod "isSupported" o = WebKit2WebExtension.DOMNode.DOMNodeIsSupportedMethodInfo
    ResolveDOMCharacterDataMethod "lookupNamespaceUri" o = WebKit2WebExtension.DOMNode.DOMNodeLookupNamespaceUriMethodInfo
    ResolveDOMCharacterDataMethod "lookupPrefix" o = WebKit2WebExtension.DOMNode.DOMNodeLookupPrefixMethodInfo
    ResolveDOMCharacterDataMethod "normalize" o = WebKit2WebExtension.DOMNode.DOMNodeNormalizeMethodInfo
    ResolveDOMCharacterDataMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveDOMCharacterDataMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveDOMCharacterDataMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveDOMCharacterDataMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveDOMCharacterDataMethod "removeChild" o = WebKit2WebExtension.DOMNode.DOMNodeRemoveChildMethodInfo
    ResolveDOMCharacterDataMethod "removeEventListener" o = WebKit2WebExtension.DOMEventTarget.DOMEventTargetRemoveEventListenerMethodInfo
    ResolveDOMCharacterDataMethod "replaceChild" o = WebKit2WebExtension.DOMNode.DOMNodeReplaceChildMethodInfo
    ResolveDOMCharacterDataMethod "replaceData" o = DOMCharacterDataReplaceDataMethodInfo
    ResolveDOMCharacterDataMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveDOMCharacterDataMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveDOMCharacterDataMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveDOMCharacterDataMethod "substringData" o = DOMCharacterDataSubstringDataMethodInfo
    ResolveDOMCharacterDataMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveDOMCharacterDataMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveDOMCharacterDataMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveDOMCharacterDataMethod "getBaseUri" o = WebKit2WebExtension.DOMNode.DOMNodeGetBaseUriMethodInfo
    ResolveDOMCharacterDataMethod "getChildNodes" o = WebKit2WebExtension.DOMNode.DOMNodeGetChildNodesMethodInfo
    ResolveDOMCharacterDataMethod "getData" o = DOMCharacterDataGetDataMethodInfo
    ResolveDOMCharacterDataMethod "getFirstChild" o = WebKit2WebExtension.DOMNode.DOMNodeGetFirstChildMethodInfo
    ResolveDOMCharacterDataMethod "getLastChild" o = WebKit2WebExtension.DOMNode.DOMNodeGetLastChildMethodInfo
    ResolveDOMCharacterDataMethod "getLength" o = DOMCharacterDataGetLengthMethodInfo
    ResolveDOMCharacterDataMethod "getLocalName" o = WebKit2WebExtension.DOMNode.DOMNodeGetLocalNameMethodInfo
    ResolveDOMCharacterDataMethod "getNamespaceUri" o = WebKit2WebExtension.DOMNode.DOMNodeGetNamespaceUriMethodInfo
    ResolveDOMCharacterDataMethod "getNextSibling" o = WebKit2WebExtension.DOMNode.DOMNodeGetNextSiblingMethodInfo
    ResolveDOMCharacterDataMethod "getNodeName" o = WebKit2WebExtension.DOMNode.DOMNodeGetNodeNameMethodInfo
    ResolveDOMCharacterDataMethod "getNodeType" o = WebKit2WebExtension.DOMNode.DOMNodeGetNodeTypeMethodInfo
    ResolveDOMCharacterDataMethod "getNodeValue" o = WebKit2WebExtension.DOMNode.DOMNodeGetNodeValueMethodInfo
    ResolveDOMCharacterDataMethod "getOwnerDocument" o = WebKit2WebExtension.DOMNode.DOMNodeGetOwnerDocumentMethodInfo
    ResolveDOMCharacterDataMethod "getParentElement" o = WebKit2WebExtension.DOMNode.DOMNodeGetParentElementMethodInfo
    ResolveDOMCharacterDataMethod "getParentNode" o = WebKit2WebExtension.DOMNode.DOMNodeGetParentNodeMethodInfo
    ResolveDOMCharacterDataMethod "getPrefix" o = WebKit2WebExtension.DOMNode.DOMNodeGetPrefixMethodInfo
    ResolveDOMCharacterDataMethod "getPreviousSibling" o = WebKit2WebExtension.DOMNode.DOMNodeGetPreviousSiblingMethodInfo
    ResolveDOMCharacterDataMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveDOMCharacterDataMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveDOMCharacterDataMethod "getTextContent" o = WebKit2WebExtension.DOMNode.DOMNodeGetTextContentMethodInfo
    ResolveDOMCharacterDataMethod "setData" o = DOMCharacterDataSetDataMethodInfo
    ResolveDOMCharacterDataMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveDOMCharacterDataMethod "setNodeValue" o = WebKit2WebExtension.DOMNode.DOMNodeSetNodeValueMethodInfo
    ResolveDOMCharacterDataMethod "setPrefix" o = WebKit2WebExtension.DOMNode.DOMNodeSetPrefixMethodInfo
    ResolveDOMCharacterDataMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveDOMCharacterDataMethod "setTextContent" o = WebKit2WebExtension.DOMNode.DOMNodeSetTextContentMethodInfo
    ResolveDOMCharacterDataMethod l o = O.MethodResolutionFailed l o

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

#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveDOMCharacterDataMethod t DOMCharacterData, O.OverloadedMethod info DOMCharacterData p, R.HasField t DOMCharacterData p) => R.HasField t DOMCharacterData p where
    getField = O.overloadedMethod @info

#endif

instance (info ~ ResolveDOMCharacterDataMethod t DOMCharacterData, O.OverloadedMethodInfo info DOMCharacterData) => OL.IsLabel t (O.MethodProxy info DOMCharacterData) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.MethodProxy
#else
    fromLabel _ = O.MethodProxy
#endif

#endif

-- VVV Prop "data"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

-- | Get the value of the “@data@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' dOMCharacterData #data
-- @
getDOMCharacterDataData :: (MonadIO m, IsDOMCharacterData o) => o -> m (Maybe T.Text)
getDOMCharacterDataData :: forall (m :: * -> *) o.
(MonadIO m, IsDOMCharacterData o) =>
o -> m (Maybe Text)
getDOMCharacterDataData o
obj = IO (Maybe Text) -> m (Maybe Text)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (Maybe Text) -> m (Maybe Text))
-> IO (Maybe Text) -> m (Maybe Text)
forall a b. (a -> b) -> a -> b
$ o -> String -> IO (Maybe Text)
forall a. GObject a => a -> String -> IO (Maybe Text)
B.Properties.getObjectPropertyString o
obj String
"data"

-- | Set the value of the “@data@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' dOMCharacterData [ #data 'Data.GI.Base.Attributes.:=' value ]
-- @
setDOMCharacterDataData :: (MonadIO m, IsDOMCharacterData o) => o -> T.Text -> m ()
setDOMCharacterDataData :: forall (m :: * -> *) o.
(MonadIO m, IsDOMCharacterData o) =>
o -> Text -> m ()
setDOMCharacterDataData o
obj Text
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Maybe Text -> IO ()
forall a. GObject a => a -> String -> Maybe Text -> IO ()
B.Properties.setObjectPropertyString o
obj String
"data" (Text -> Maybe Text
forall a. a -> Maybe a
Just Text
val)

-- | Construct a `GValueConstruct` with valid value for the “@data@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructDOMCharacterDataData :: (IsDOMCharacterData o, MIO.MonadIO m) => T.Text -> m (GValueConstruct o)
constructDOMCharacterDataData :: forall o (m :: * -> *).
(IsDOMCharacterData o, MonadIO m) =>
Text -> m (GValueConstruct o)
constructDOMCharacterDataData Text
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Maybe Text -> IO (GValueConstruct o)
forall o. String -> Maybe Text -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyString String
"data" (Text -> Maybe Text
forall a. a -> Maybe a
P.Just Text
val)

-- | Set the value of the “@data@” property to `Nothing`.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.clear' #data
-- @
clearDOMCharacterDataData :: (MonadIO m, IsDOMCharacterData o) => o -> m ()
clearDOMCharacterDataData :: forall (m :: * -> *) o.
(MonadIO m, IsDOMCharacterData o) =>
o -> m ()
clearDOMCharacterDataData o
obj = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ o -> String -> Maybe Text -> IO ()
forall a. GObject a => a -> String -> Maybe Text -> IO ()
B.Properties.setObjectPropertyString o
obj String
"data" (Maybe Text
forall a. Maybe a
Nothing :: Maybe T.Text)

#if defined(ENABLE_OVERLOADING)
data DOMCharacterDataDataPropertyInfo
instance AttrInfo DOMCharacterDataDataPropertyInfo where
    type AttrAllowedOps DOMCharacterDataDataPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint DOMCharacterDataDataPropertyInfo = IsDOMCharacterData
    type AttrSetTypeConstraint DOMCharacterDataDataPropertyInfo = (~) T.Text
    type AttrTransferTypeConstraint DOMCharacterDataDataPropertyInfo = (~) T.Text
    type AttrTransferType DOMCharacterDataDataPropertyInfo = T.Text
    type AttrGetType DOMCharacterDataDataPropertyInfo = (Maybe T.Text)
    type AttrLabel DOMCharacterDataDataPropertyInfo = "data"
    type AttrOrigin DOMCharacterDataDataPropertyInfo = DOMCharacterData
    attrGet = getDOMCharacterDataData
    attrSet = setDOMCharacterDataData
    attrTransfer _ v = do
        return v
    attrConstruct = constructDOMCharacterDataData
    attrClear = clearDOMCharacterDataData
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.WebKit2WebExtension.Objects.DOMCharacterData.data"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2webextension-4.0.28/docs/GI-WebKit2WebExtension-Objects-DOMCharacterData.html#g:attr:data"
        })
#endif

-- VVV Prop "length"
   -- Type: TBasicType TULong
   -- Flags: [PropertyReadable]
   -- Nullable: (Just False,Nothing)

-- | Get the value of the “@length@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' dOMCharacterData #length
-- @
getDOMCharacterDataLength :: (MonadIO m, IsDOMCharacterData o) => o -> m CULong
getDOMCharacterDataLength :: forall (m :: * -> *) o.
(MonadIO m, IsDOMCharacterData o) =>
o -> m CULong
getDOMCharacterDataLength o
obj = IO CULong -> m CULong
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO CULong -> m CULong) -> IO CULong -> m CULong
forall a b. (a -> b) -> a -> b
$ o -> String -> IO CULong
forall a. GObject a => a -> String -> IO CULong
B.Properties.getObjectPropertyULong o
obj String
"length"

#if defined(ENABLE_OVERLOADING)
data DOMCharacterDataLengthPropertyInfo
instance AttrInfo DOMCharacterDataLengthPropertyInfo where
    type AttrAllowedOps DOMCharacterDataLengthPropertyInfo = '[ 'AttrGet]
    type AttrBaseTypeConstraint DOMCharacterDataLengthPropertyInfo = IsDOMCharacterData
    type AttrSetTypeConstraint DOMCharacterDataLengthPropertyInfo = (~) ()
    type AttrTransferTypeConstraint DOMCharacterDataLengthPropertyInfo = (~) ()
    type AttrTransferType DOMCharacterDataLengthPropertyInfo = ()
    type AttrGetType DOMCharacterDataLengthPropertyInfo = CULong
    type AttrLabel DOMCharacterDataLengthPropertyInfo = "length"
    type AttrOrigin DOMCharacterDataLengthPropertyInfo = DOMCharacterData
    attrGet = getDOMCharacterDataLength
    attrSet = undefined
    attrTransfer _ = undefined
    attrConstruct = undefined
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.WebKit2WebExtension.Objects.DOMCharacterData.length"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2webextension-4.0.28/docs/GI-WebKit2WebExtension-Objects-DOMCharacterData.html#g:attr:length"
        })
#endif

#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList DOMCharacterData
type instance O.AttributeList DOMCharacterData = DOMCharacterDataAttributeList
type DOMCharacterDataAttributeList = ('[ '("baseUri", WebKit2WebExtension.DOMNode.DOMNodeBaseUriPropertyInfo), '("childNodes", WebKit2WebExtension.DOMNode.DOMNodeChildNodesPropertyInfo), '("coreObject", WebKit2WebExtension.DOMObject.DOMObjectCoreObjectPropertyInfo), '("data", DOMCharacterDataDataPropertyInfo), '("firstChild", WebKit2WebExtension.DOMNode.DOMNodeFirstChildPropertyInfo), '("lastChild", WebKit2WebExtension.DOMNode.DOMNodeLastChildPropertyInfo), '("length", DOMCharacterDataLengthPropertyInfo), '("nextSibling", WebKit2WebExtension.DOMNode.DOMNodeNextSiblingPropertyInfo), '("nodeName", WebKit2WebExtension.DOMNode.DOMNodeNodeNamePropertyInfo), '("nodeType", WebKit2WebExtension.DOMNode.DOMNodeNodeTypePropertyInfo), '("nodeValue", WebKit2WebExtension.DOMNode.DOMNodeNodeValuePropertyInfo), '("ownerDocument", WebKit2WebExtension.DOMNode.DOMNodeOwnerDocumentPropertyInfo), '("parentElement", WebKit2WebExtension.DOMNode.DOMNodeParentElementPropertyInfo), '("parentNode", WebKit2WebExtension.DOMNode.DOMNodeParentNodePropertyInfo), '("previousSibling", WebKit2WebExtension.DOMNode.DOMNodePreviousSiblingPropertyInfo), '("textContent", WebKit2WebExtension.DOMNode.DOMNodeTextContentPropertyInfo)] :: [(Symbol, *)])
#endif

#if defined(ENABLE_OVERLOADING)
dOMCharacterDataData :: AttrLabelProxy "data"
dOMCharacterDataData = AttrLabelProxy

dOMCharacterDataLength :: AttrLabelProxy "length"
dOMCharacterDataLength = AttrLabelProxy

#endif

#if defined(ENABLE_OVERLOADING)
type instance O.SignalList DOMCharacterData = DOMCharacterDataSignalList
type DOMCharacterDataSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])

#endif

-- method DOMCharacterData::append_data
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface
--                 Name
--                   { namespace = "WebKit2WebExtension" , name = "DOMCharacterData" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "A #WebKitDOMCharacterData"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "data"
--           , argType = TBasicType TUTF8
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "A #gchar" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_character_data_append_data" webkit_dom_character_data_append_data :: 
    Ptr DOMCharacterData ->                 -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCharacterData"})
    CString ->                              -- data : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO ()

{-# DEPRECATED dOMCharacterDataAppendData ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
-- | /No description available in the introspection data./
dOMCharacterDataAppendData ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMCharacterData a) =>
    a
    -- ^ /@self@/: A t'GI.WebKit2WebExtension.Objects.DOMCharacterData.DOMCharacterData'
    -> T.Text
    -- ^ /@data@/: A @/gchar/@
    -> m ()
    -- ^ /(Can throw 'Data.GI.Base.GError.GError')/
dOMCharacterDataAppendData :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDOMCharacterData a) =>
a -> Text -> m ()
dOMCharacterDataAppendData a
self Text
data_ = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr DOMCharacterData
self' <- a -> IO (Ptr DOMCharacterData)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CString
data_' <- Text -> IO CString
textToCString Text
data_
    IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO a
onException (do
        (Ptr (Ptr GError) -> IO ()) -> IO ()
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO ()) -> IO ())
-> (Ptr (Ptr GError) -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ Ptr DOMCharacterData -> CString -> Ptr (Ptr GError) -> IO ()
webkit_dom_character_data_append_data Ptr DOMCharacterData
self' CString
data_'
        a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
        CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
data_'
        () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
     ) (do
        CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
data_'
     )

#if defined(ENABLE_OVERLOADING)
data DOMCharacterDataAppendDataMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsDOMCharacterData a) => O.OverloadedMethod DOMCharacterDataAppendDataMethodInfo a signature where
    overloadedMethod = dOMCharacterDataAppendData

instance O.OverloadedMethodInfo DOMCharacterDataAppendDataMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.WebKit2WebExtension.Objects.DOMCharacterData.dOMCharacterDataAppendData",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2webextension-4.0.28/docs/GI-WebKit2WebExtension-Objects-DOMCharacterData.html#v:dOMCharacterDataAppendData"
        })


#endif

-- method DOMCharacterData::delete_data
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface
--                 Name
--                   { namespace = "WebKit2WebExtension" , name = "DOMCharacterData" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "A #WebKitDOMCharacterData"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "offset"
--           , argType = TBasicType TULong
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "A #gulong" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "length"
--           , argType = TBasicType TULong
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "A #gulong" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_character_data_delete_data" webkit_dom_character_data_delete_data :: 
    Ptr DOMCharacterData ->                 -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCharacterData"})
    CULong ->                               -- offset : TBasicType TULong
    CULong ->                               -- length : TBasicType TULong
    Ptr (Ptr GError) ->                     -- error
    IO ()

{-# DEPRECATED dOMCharacterDataDeleteData ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
-- | /No description available in the introspection data./
dOMCharacterDataDeleteData ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMCharacterData a) =>
    a
    -- ^ /@self@/: A t'GI.WebKit2WebExtension.Objects.DOMCharacterData.DOMCharacterData'
    -> CULong
    -- ^ /@offset@/: A @/gulong/@
    -> CULong
    -- ^ /@length@/: A @/gulong/@
    -> m ()
    -- ^ /(Can throw 'Data.GI.Base.GError.GError')/
dOMCharacterDataDeleteData :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDOMCharacterData a) =>
a -> CULong -> CULong -> m ()
dOMCharacterDataDeleteData a
self CULong
offset CULong
length_ = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr DOMCharacterData
self' <- a -> IO (Ptr DOMCharacterData)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO a
onException (do
        (Ptr (Ptr GError) -> IO ()) -> IO ()
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO ()) -> IO ())
-> (Ptr (Ptr GError) -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ Ptr DOMCharacterData
-> CULong -> CULong -> Ptr (Ptr GError) -> IO ()
webkit_dom_character_data_delete_data Ptr DOMCharacterData
self' CULong
offset CULong
length_
        a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
        () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
     ) (do
        () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
     )

#if defined(ENABLE_OVERLOADING)
data DOMCharacterDataDeleteDataMethodInfo
instance (signature ~ (CULong -> CULong -> m ()), MonadIO m, IsDOMCharacterData a) => O.OverloadedMethod DOMCharacterDataDeleteDataMethodInfo a signature where
    overloadedMethod = dOMCharacterDataDeleteData

instance O.OverloadedMethodInfo DOMCharacterDataDeleteDataMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.WebKit2WebExtension.Objects.DOMCharacterData.dOMCharacterDataDeleteData",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2webextension-4.0.28/docs/GI-WebKit2WebExtension-Objects-DOMCharacterData.html#v:dOMCharacterDataDeleteData"
        })


#endif

-- method DOMCharacterData::get_data
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface
--                 Name
--                   { namespace = "WebKit2WebExtension" , name = "DOMCharacterData" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "A #WebKitDOMCharacterData"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_character_data_get_data" webkit_dom_character_data_get_data :: 
    Ptr DOMCharacterData ->                 -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCharacterData"})
    IO CString

{-# DEPRECATED dOMCharacterDataGetData ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
-- | /No description available in the introspection data./
dOMCharacterDataGetData ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMCharacterData a) =>
    a
    -- ^ /@self@/: A t'GI.WebKit2WebExtension.Objects.DOMCharacterData.DOMCharacterData'
    -> m T.Text
    -- ^ __Returns:__ A @/gchar/@
dOMCharacterDataGetData :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDOMCharacterData a) =>
a -> m Text
dOMCharacterDataGetData a
self = IO Text -> m Text
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
    Ptr DOMCharacterData
self' <- a -> IO (Ptr DOMCharacterData)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CString
result <- Ptr DOMCharacterData -> IO CString
webkit_dom_character_data_get_data Ptr DOMCharacterData
self'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"dOMCharacterDataGetData" CString
result
    Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Text -> IO Text
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'

#if defined(ENABLE_OVERLOADING)
data DOMCharacterDataGetDataMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsDOMCharacterData a) => O.OverloadedMethod DOMCharacterDataGetDataMethodInfo a signature where
    overloadedMethod = dOMCharacterDataGetData

instance O.OverloadedMethodInfo DOMCharacterDataGetDataMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.WebKit2WebExtension.Objects.DOMCharacterData.dOMCharacterDataGetData",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2webextension-4.0.28/docs/GI-WebKit2WebExtension-Objects-DOMCharacterData.html#v:dOMCharacterDataGetData"
        })


#endif

-- method DOMCharacterData::get_length
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface
--                 Name
--                   { namespace = "WebKit2WebExtension" , name = "DOMCharacterData" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "A #WebKitDOMCharacterData"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TULong)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_character_data_get_length" webkit_dom_character_data_get_length :: 
    Ptr DOMCharacterData ->                 -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCharacterData"})
    IO CULong

{-# DEPRECATED dOMCharacterDataGetLength ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
-- | /No description available in the introspection data./
dOMCharacterDataGetLength ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMCharacterData a) =>
    a
    -- ^ /@self@/: A t'GI.WebKit2WebExtension.Objects.DOMCharacterData.DOMCharacterData'
    -> m CULong
    -- ^ __Returns:__ A @/gulong/@
dOMCharacterDataGetLength :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDOMCharacterData a) =>
a -> m CULong
dOMCharacterDataGetLength a
self = IO CULong -> m CULong
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO CULong -> m CULong) -> IO CULong -> m CULong
forall a b. (a -> b) -> a -> b
$ do
    Ptr DOMCharacterData
self' <- a -> IO (Ptr DOMCharacterData)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CULong
result <- Ptr DOMCharacterData -> IO CULong
webkit_dom_character_data_get_length Ptr DOMCharacterData
self'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    CULong -> IO CULong
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return CULong
result

#if defined(ENABLE_OVERLOADING)
data DOMCharacterDataGetLengthMethodInfo
instance (signature ~ (m CULong), MonadIO m, IsDOMCharacterData a) => O.OverloadedMethod DOMCharacterDataGetLengthMethodInfo a signature where
    overloadedMethod = dOMCharacterDataGetLength

instance O.OverloadedMethodInfo DOMCharacterDataGetLengthMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.WebKit2WebExtension.Objects.DOMCharacterData.dOMCharacterDataGetLength",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2webextension-4.0.28/docs/GI-WebKit2WebExtension-Objects-DOMCharacterData.html#v:dOMCharacterDataGetLength"
        })


#endif

-- method DOMCharacterData::insert_data
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface
--                 Name
--                   { namespace = "WebKit2WebExtension" , name = "DOMCharacterData" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "A #WebKitDOMCharacterData"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "offset"
--           , argType = TBasicType TULong
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "A #gulong" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "data"
--           , argType = TBasicType TUTF8
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "A #gchar" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_character_data_insert_data" webkit_dom_character_data_insert_data :: 
    Ptr DOMCharacterData ->                 -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCharacterData"})
    CULong ->                               -- offset : TBasicType TULong
    CString ->                              -- data : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO ()

{-# DEPRECATED dOMCharacterDataInsertData ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
-- | /No description available in the introspection data./
dOMCharacterDataInsertData ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMCharacterData a) =>
    a
    -- ^ /@self@/: A t'GI.WebKit2WebExtension.Objects.DOMCharacterData.DOMCharacterData'
    -> CULong
    -- ^ /@offset@/: A @/gulong/@
    -> T.Text
    -- ^ /@data@/: A @/gchar/@
    -> m ()
    -- ^ /(Can throw 'Data.GI.Base.GError.GError')/
dOMCharacterDataInsertData :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDOMCharacterData a) =>
a -> CULong -> Text -> m ()
dOMCharacterDataInsertData a
self CULong
offset Text
data_ = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr DOMCharacterData
self' <- a -> IO (Ptr DOMCharacterData)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CString
data_' <- Text -> IO CString
textToCString Text
data_
    IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO a
onException (do
        (Ptr (Ptr GError) -> IO ()) -> IO ()
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO ()) -> IO ())
-> (Ptr (Ptr GError) -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ Ptr DOMCharacterData
-> CULong -> CString -> Ptr (Ptr GError) -> IO ()
webkit_dom_character_data_insert_data Ptr DOMCharacterData
self' CULong
offset CString
data_'
        a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
        CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
data_'
        () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
     ) (do
        CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
data_'
     )

#if defined(ENABLE_OVERLOADING)
data DOMCharacterDataInsertDataMethodInfo
instance (signature ~ (CULong -> T.Text -> m ()), MonadIO m, IsDOMCharacterData a) => O.OverloadedMethod DOMCharacterDataInsertDataMethodInfo a signature where
    overloadedMethod = dOMCharacterDataInsertData

instance O.OverloadedMethodInfo DOMCharacterDataInsertDataMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.WebKit2WebExtension.Objects.DOMCharacterData.dOMCharacterDataInsertData",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2webextension-4.0.28/docs/GI-WebKit2WebExtension-Objects-DOMCharacterData.html#v:dOMCharacterDataInsertData"
        })


#endif

-- method DOMCharacterData::replace_data
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface
--                 Name
--                   { namespace = "WebKit2WebExtension" , name = "DOMCharacterData" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "A #WebKitDOMCharacterData"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "offset"
--           , argType = TBasicType TULong
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "A #gulong" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "length"
--           , argType = TBasicType TULong
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "A #gulong" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "data"
--           , argType = TBasicType TUTF8
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "A #gchar" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_character_data_replace_data" webkit_dom_character_data_replace_data :: 
    Ptr DOMCharacterData ->                 -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCharacterData"})
    CULong ->                               -- offset : TBasicType TULong
    CULong ->                               -- length : TBasicType TULong
    CString ->                              -- data : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO ()

{-# DEPRECATED dOMCharacterDataReplaceData ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
-- | /No description available in the introspection data./
dOMCharacterDataReplaceData ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMCharacterData a) =>
    a
    -- ^ /@self@/: A t'GI.WebKit2WebExtension.Objects.DOMCharacterData.DOMCharacterData'
    -> CULong
    -- ^ /@offset@/: A @/gulong/@
    -> CULong
    -- ^ /@length@/: A @/gulong/@
    -> T.Text
    -- ^ /@data@/: A @/gchar/@
    -> m ()
    -- ^ /(Can throw 'Data.GI.Base.GError.GError')/
dOMCharacterDataReplaceData :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDOMCharacterData a) =>
a -> CULong -> CULong -> Text -> m ()
dOMCharacterDataReplaceData a
self CULong
offset CULong
length_ Text
data_ = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr DOMCharacterData
self' <- a -> IO (Ptr DOMCharacterData)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CString
data_' <- Text -> IO CString
textToCString Text
data_
    IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO a
onException (do
        (Ptr (Ptr GError) -> IO ()) -> IO ()
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO ()) -> IO ())
-> (Ptr (Ptr GError) -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ Ptr DOMCharacterData
-> CULong -> CULong -> CString -> Ptr (Ptr GError) -> IO ()
webkit_dom_character_data_replace_data Ptr DOMCharacterData
self' CULong
offset CULong
length_ CString
data_'
        a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
        CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
data_'
        () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
     ) (do
        CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
data_'
     )

#if defined(ENABLE_OVERLOADING)
data DOMCharacterDataReplaceDataMethodInfo
instance (signature ~ (CULong -> CULong -> T.Text -> m ()), MonadIO m, IsDOMCharacterData a) => O.OverloadedMethod DOMCharacterDataReplaceDataMethodInfo a signature where
    overloadedMethod = dOMCharacterDataReplaceData

instance O.OverloadedMethodInfo DOMCharacterDataReplaceDataMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.WebKit2WebExtension.Objects.DOMCharacterData.dOMCharacterDataReplaceData",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2webextension-4.0.28/docs/GI-WebKit2WebExtension-Objects-DOMCharacterData.html#v:dOMCharacterDataReplaceData"
        })


#endif

-- method DOMCharacterData::set_data
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface
--                 Name
--                   { namespace = "WebKit2WebExtension" , name = "DOMCharacterData" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "A #WebKitDOMCharacterData"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "value"
--           , argType = TBasicType TUTF8
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "A #gchar" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_character_data_set_data" webkit_dom_character_data_set_data :: 
    Ptr DOMCharacterData ->                 -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCharacterData"})
    CString ->                              -- value : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO ()

{-# DEPRECATED dOMCharacterDataSetData ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
-- | /No description available in the introspection data./
dOMCharacterDataSetData ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMCharacterData a) =>
    a
    -- ^ /@self@/: A t'GI.WebKit2WebExtension.Objects.DOMCharacterData.DOMCharacterData'
    -> T.Text
    -- ^ /@value@/: A @/gchar/@
    -> m ()
    -- ^ /(Can throw 'Data.GI.Base.GError.GError')/
dOMCharacterDataSetData :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDOMCharacterData a) =>
a -> Text -> m ()
dOMCharacterDataSetData a
self Text
value = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr DOMCharacterData
self' <- a -> IO (Ptr DOMCharacterData)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CString
value' <- Text -> IO CString
textToCString Text
value
    IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO a
onException (do
        (Ptr (Ptr GError) -> IO ()) -> IO ()
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO ()) -> IO ())
-> (Ptr (Ptr GError) -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ Ptr DOMCharacterData -> CString -> Ptr (Ptr GError) -> IO ()
webkit_dom_character_data_set_data Ptr DOMCharacterData
self' CString
value'
        a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
        CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
value'
        () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
     ) (do
        CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
value'
     )

#if defined(ENABLE_OVERLOADING)
data DOMCharacterDataSetDataMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsDOMCharacterData a) => O.OverloadedMethod DOMCharacterDataSetDataMethodInfo a signature where
    overloadedMethod = dOMCharacterDataSetData

instance O.OverloadedMethodInfo DOMCharacterDataSetDataMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.WebKit2WebExtension.Objects.DOMCharacterData.dOMCharacterDataSetData",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2webextension-4.0.28/docs/GI-WebKit2WebExtension-Objects-DOMCharacterData.html#v:dOMCharacterDataSetData"
        })


#endif

-- method DOMCharacterData::substring_data
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface
--                 Name
--                   { namespace = "WebKit2WebExtension" , name = "DOMCharacterData" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "A #WebKitDOMCharacterData"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "offset"
--           , argType = TBasicType TULong
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "A #gulong" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "length"
--           , argType = TBasicType TULong
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "A #gulong" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TUTF8)
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_character_data_substring_data" webkit_dom_character_data_substring_data :: 
    Ptr DOMCharacterData ->                 -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCharacterData"})
    CULong ->                               -- offset : TBasicType TULong
    CULong ->                               -- length : TBasicType TULong
    Ptr (Ptr GError) ->                     -- error
    IO CString

{-# DEPRECATED dOMCharacterDataSubstringData ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
-- | /No description available in the introspection data./
dOMCharacterDataSubstringData ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMCharacterData a) =>
    a
    -- ^ /@self@/: A t'GI.WebKit2WebExtension.Objects.DOMCharacterData.DOMCharacterData'
    -> CULong
    -- ^ /@offset@/: A @/gulong/@
    -> CULong
    -- ^ /@length@/: A @/gulong/@
    -> m T.Text
    -- ^ __Returns:__ A @/gchar/@ /(Can throw 'Data.GI.Base.GError.GError')/
dOMCharacterDataSubstringData :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDOMCharacterData a) =>
a -> CULong -> CULong -> m Text
dOMCharacterDataSubstringData a
self CULong
offset CULong
length_ = IO Text -> m Text
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
    Ptr DOMCharacterData
self' <- a -> IO (Ptr DOMCharacterData)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    IO Text -> IO () -> IO Text
forall a b. IO a -> IO b -> IO a
onException (do
        CString
result <- (Ptr (Ptr GError) -> IO CString) -> IO CString
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO CString) -> IO CString)
-> (Ptr (Ptr GError) -> IO CString) -> IO CString
forall a b. (a -> b) -> a -> b
$ Ptr DOMCharacterData
-> CULong -> CULong -> Ptr (Ptr GError) -> IO CString
webkit_dom_character_data_substring_data Ptr DOMCharacterData
self' CULong
offset CULong
length_
        Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"dOMCharacterDataSubstringData" CString
result
        Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
        CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
result
        a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
        Text -> IO Text
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'
     ) (do
        () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
     )

#if defined(ENABLE_OVERLOADING)
data DOMCharacterDataSubstringDataMethodInfo
instance (signature ~ (CULong -> CULong -> m T.Text), MonadIO m, IsDOMCharacterData a) => O.OverloadedMethod DOMCharacterDataSubstringDataMethodInfo a signature where
    overloadedMethod = dOMCharacterDataSubstringData

instance O.OverloadedMethodInfo DOMCharacterDataSubstringDataMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.WebKit2WebExtension.Objects.DOMCharacterData.dOMCharacterDataSubstringData",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2webextension-4.0.28/docs/GI-WebKit2WebExtension-Objects-DOMCharacterData.html#v:dOMCharacterDataSubstringData"
        })


#endif