{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)

/No description available in the introspection data./
-}

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

module GI.WebKit2WebExtension.Objects.DOMNamedNodeMap
    (

-- * Exported types
    DOMNamedNodeMap(..)                     ,
    IsDOMNamedNodeMap                       ,
    toDOMNamedNodeMap                       ,
    noDOMNamedNodeMap                       ,


 -- * Methods
-- ** getLength #method:getLength#

#if ENABLE_OVERLOADING
    DOMNamedNodeMapGetLengthMethodInfo      ,
#endif
    dOMNamedNodeMapGetLength                ,


-- ** getNamedItem #method:getNamedItem#

#if ENABLE_OVERLOADING
    DOMNamedNodeMapGetNamedItemMethodInfo   ,
#endif
    dOMNamedNodeMapGetNamedItem             ,


-- ** getNamedItemNs #method:getNamedItemNs#

#if ENABLE_OVERLOADING
    DOMNamedNodeMapGetNamedItemNsMethodInfo ,
#endif
    dOMNamedNodeMapGetNamedItemNs           ,


-- ** item #method:item#

#if ENABLE_OVERLOADING
    DOMNamedNodeMapItemMethodInfo           ,
#endif
    dOMNamedNodeMapItem                     ,


-- ** removeNamedItem #method:removeNamedItem#

#if ENABLE_OVERLOADING
    DOMNamedNodeMapRemoveNamedItemMethodInfo,
#endif
    dOMNamedNodeMapRemoveNamedItem          ,


-- ** removeNamedItemNs #method:removeNamedItemNs#

#if ENABLE_OVERLOADING
    DOMNamedNodeMapRemoveNamedItemNsMethodInfo,
#endif
    dOMNamedNodeMapRemoveNamedItemNs        ,


-- ** setNamedItem #method:setNamedItem#

#if ENABLE_OVERLOADING
    DOMNamedNodeMapSetNamedItemMethodInfo   ,
#endif
    dOMNamedNodeMapSetNamedItem             ,


-- ** setNamedItemNs #method:setNamedItemNs#

#if ENABLE_OVERLOADING
    DOMNamedNodeMapSetNamedItemNsMethodInfo ,
#endif
    dOMNamedNodeMapSetNamedItemNs           ,




 -- * Properties
-- ** length #attr:length#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMNamedNodeMapLengthPropertyInfo       ,
#endif
#if ENABLE_OVERLOADING
    dOMNamedNodeMapLength                   ,
#endif
    getDOMNamedNodeMapLength                ,




    ) 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.GObject.Objects.Object as GObject.Object
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 DOMNamedNodeMap = DOMNamedNodeMap (ManagedPtr DOMNamedNodeMap)
foreign import ccall "webkit_dom_named_node_map_get_type"
    c_webkit_dom_named_node_map_get_type :: IO GType

instance GObject DOMNamedNodeMap where
    gobjectType = c_webkit_dom_named_node_map_get_type


-- | Type class for types which can be safely cast to `DOMNamedNodeMap`, for instance with `toDOMNamedNodeMap`.
class (GObject o, O.IsDescendantOf DOMNamedNodeMap o) => IsDOMNamedNodeMap o
instance (GObject o, O.IsDescendantOf DOMNamedNodeMap o) => IsDOMNamedNodeMap o

instance O.HasParentTypes DOMNamedNodeMap
type instance O.ParentTypes DOMNamedNodeMap = '[WebKit2WebExtension.DOMObject.DOMObject, GObject.Object.Object]

-- | Cast to `DOMNamedNodeMap`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.
toDOMNamedNodeMap :: (MonadIO m, IsDOMNamedNodeMap o) => o -> m DOMNamedNodeMap
toDOMNamedNodeMap = liftIO . unsafeCastTo DOMNamedNodeMap

-- | A convenience alias for `Nothing` :: `Maybe` `DOMNamedNodeMap`.
noDOMNamedNodeMap :: Maybe DOMNamedNodeMap
noDOMNamedNodeMap = Nothing

#if ENABLE_OVERLOADING
type family ResolveDOMNamedNodeMapMethod (t :: Symbol) (o :: *) :: * where
    ResolveDOMNamedNodeMapMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveDOMNamedNodeMapMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveDOMNamedNodeMapMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveDOMNamedNodeMapMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveDOMNamedNodeMapMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveDOMNamedNodeMapMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveDOMNamedNodeMapMethod "item" o = DOMNamedNodeMapItemMethodInfo
    ResolveDOMNamedNodeMapMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveDOMNamedNodeMapMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveDOMNamedNodeMapMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveDOMNamedNodeMapMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveDOMNamedNodeMapMethod "removeNamedItem" o = DOMNamedNodeMapRemoveNamedItemMethodInfo
    ResolveDOMNamedNodeMapMethod "removeNamedItemNs" o = DOMNamedNodeMapRemoveNamedItemNsMethodInfo
    ResolveDOMNamedNodeMapMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveDOMNamedNodeMapMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveDOMNamedNodeMapMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveDOMNamedNodeMapMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveDOMNamedNodeMapMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveDOMNamedNodeMapMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveDOMNamedNodeMapMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveDOMNamedNodeMapMethod "getLength" o = DOMNamedNodeMapGetLengthMethodInfo
    ResolveDOMNamedNodeMapMethod "getNamedItem" o = DOMNamedNodeMapGetNamedItemMethodInfo
    ResolveDOMNamedNodeMapMethod "getNamedItemNs" o = DOMNamedNodeMapGetNamedItemNsMethodInfo
    ResolveDOMNamedNodeMapMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveDOMNamedNodeMapMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveDOMNamedNodeMapMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveDOMNamedNodeMapMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveDOMNamedNodeMapMethod "setNamedItem" o = DOMNamedNodeMapSetNamedItemMethodInfo
    ResolveDOMNamedNodeMapMethod "setNamedItemNs" o = DOMNamedNodeMapSetNamedItemNsMethodInfo
    ResolveDOMNamedNodeMapMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveDOMNamedNodeMapMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveDOMNamedNodeMapMethod t DOMNamedNodeMap, O.MethodInfo info DOMNamedNodeMap p) => OL.IsLabel t (DOMNamedNodeMap -> 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

-- 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' dOMNamedNodeMap #length
@
-}
getDOMNamedNodeMapLength :: (MonadIO m, IsDOMNamedNodeMap o) => o -> m CULong
getDOMNamedNodeMapLength obj = liftIO $ B.Properties.getObjectPropertyULong obj "length"

#if ENABLE_OVERLOADING
data DOMNamedNodeMapLengthPropertyInfo
instance AttrInfo DOMNamedNodeMapLengthPropertyInfo where
    type AttrAllowedOps DOMNamedNodeMapLengthPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMNamedNodeMapLengthPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMNamedNodeMapLengthPropertyInfo = IsDOMNamedNodeMap
    type AttrGetType DOMNamedNodeMapLengthPropertyInfo = CULong
    type AttrLabel DOMNamedNodeMapLengthPropertyInfo = "length"
    type AttrOrigin DOMNamedNodeMapLengthPropertyInfo = DOMNamedNodeMap
    attrGet _ = getDOMNamedNodeMapLength
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined
#endif

#if ENABLE_OVERLOADING
instance O.HasAttributeList DOMNamedNodeMap
type instance O.AttributeList DOMNamedNodeMap = DOMNamedNodeMapAttributeList
type DOMNamedNodeMapAttributeList = ('[ '("coreObject", WebKit2WebExtension.DOMObject.DOMObjectCoreObjectPropertyInfo), '("length", DOMNamedNodeMapLengthPropertyInfo)] :: [(Symbol, *)])
#endif

#if ENABLE_OVERLOADING
dOMNamedNodeMapLength :: AttrLabelProxy "length"
dOMNamedNodeMapLength = AttrLabelProxy

#endif

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

#endif

-- method DOMNamedNodeMap::get_length
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNamedNodeMap"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNamedNodeMap", 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_named_node_map_get_length" webkit_dom_named_node_map_get_length ::
    Ptr DOMNamedNodeMap ->                  -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNamedNodeMap"})
    IO CULong

{-# DEPRECATED dOMNamedNodeMapGetLength ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNamedNodeMapGetLength ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNamedNodeMap a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNamedNodeMap.DOMNamedNodeMap' -}
    -> m CULong
    {- ^ __Returns:__ A @/gulong/@ -}
dOMNamedNodeMapGetLength self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_named_node_map_get_length self'
    touchManagedPtr self
    return result

#if ENABLE_OVERLOADING
data DOMNamedNodeMapGetLengthMethodInfo
instance (signature ~ (m CULong), MonadIO m, IsDOMNamedNodeMap a) => O.MethodInfo DOMNamedNodeMapGetLengthMethodInfo a signature where
    overloadedMethod _ = dOMNamedNodeMapGetLength

#endif

-- method DOMNamedNodeMap::get_named_item
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNamedNodeMap"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNamedNodeMap", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name", 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 : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}))
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_named_node_map_get_named_item" webkit_dom_named_node_map_get_named_item ::
    Ptr DOMNamedNodeMap ->                  -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNamedNodeMap"})
    CString ->                              -- name : TBasicType TUTF8
    IO (Ptr WebKit2WebExtension.DOMNode.DOMNode)

{-# DEPRECATED dOMNamedNodeMapGetNamedItem ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNamedNodeMapGetNamedItem ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNamedNodeMap a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNamedNodeMap.DOMNamedNodeMap' -}
    -> T.Text
    {- ^ /@name@/: A @/gchar/@ -}
    -> m WebKit2WebExtension.DOMNode.DOMNode
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
dOMNamedNodeMapGetNamedItem self name = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    name' <- textToCString name
    result <- webkit_dom_named_node_map_get_named_item self' name'
    checkUnexpectedReturnNULL "dOMNamedNodeMapGetNamedItem" result
    result' <- (newObject WebKit2WebExtension.DOMNode.DOMNode) result
    touchManagedPtr self
    freeMem name'
    return result'

#if ENABLE_OVERLOADING
data DOMNamedNodeMapGetNamedItemMethodInfo
instance (signature ~ (T.Text -> m WebKit2WebExtension.DOMNode.DOMNode), MonadIO m, IsDOMNamedNodeMap a) => O.MethodInfo DOMNamedNodeMapGetNamedItemMethodInfo a signature where
    overloadedMethod _ = dOMNamedNodeMapGetNamedItem

#endif

-- method DOMNamedNodeMap::get_named_item_ns
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNamedNodeMap"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNamedNodeMap", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "namespaceURI", 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},Arg {argCName = "localName", 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 : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}))
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_named_node_map_get_named_item_ns" webkit_dom_named_node_map_get_named_item_ns ::
    Ptr DOMNamedNodeMap ->                  -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNamedNodeMap"})
    CString ->                              -- namespaceURI : TBasicType TUTF8
    CString ->                              -- localName : TBasicType TUTF8
    IO (Ptr WebKit2WebExtension.DOMNode.DOMNode)

{-# DEPRECATED dOMNamedNodeMapGetNamedItemNs ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNamedNodeMapGetNamedItemNs ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNamedNodeMap a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNamedNodeMap.DOMNamedNodeMap' -}
    -> T.Text
    {- ^ /@namespaceURI@/: A @/gchar/@ -}
    -> T.Text
    {- ^ /@localName@/: A @/gchar/@ -}
    -> m WebKit2WebExtension.DOMNode.DOMNode
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
dOMNamedNodeMapGetNamedItemNs self namespaceURI localName = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    namespaceURI' <- textToCString namespaceURI
    localName' <- textToCString localName
    result <- webkit_dom_named_node_map_get_named_item_ns self' namespaceURI' localName'
    checkUnexpectedReturnNULL "dOMNamedNodeMapGetNamedItemNs" result
    result' <- (newObject WebKit2WebExtension.DOMNode.DOMNode) result
    touchManagedPtr self
    freeMem namespaceURI'
    freeMem localName'
    return result'

#if ENABLE_OVERLOADING
data DOMNamedNodeMapGetNamedItemNsMethodInfo
instance (signature ~ (T.Text -> T.Text -> m WebKit2WebExtension.DOMNode.DOMNode), MonadIO m, IsDOMNamedNodeMap a) => O.MethodInfo DOMNamedNodeMapGetNamedItemNsMethodInfo a signature where
    overloadedMethod _ = dOMNamedNodeMapGetNamedItemNs

#endif

-- method DOMNamedNodeMap::item
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNamedNodeMap"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNamedNodeMap", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index", 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 (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}))
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_named_node_map_item" webkit_dom_named_node_map_item ::
    Ptr DOMNamedNodeMap ->                  -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNamedNodeMap"})
    CULong ->                               -- index : TBasicType TULong
    IO (Ptr WebKit2WebExtension.DOMNode.DOMNode)

{-# DEPRECATED dOMNamedNodeMapItem ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNamedNodeMapItem ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNamedNodeMap a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNamedNodeMap.DOMNamedNodeMap' -}
    -> CULong
    {- ^ /@index@/: A @/gulong/@ -}
    -> m WebKit2WebExtension.DOMNode.DOMNode
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
dOMNamedNodeMapItem self index = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_named_node_map_item self' index
    checkUnexpectedReturnNULL "dOMNamedNodeMapItem" result
    result' <- (newObject WebKit2WebExtension.DOMNode.DOMNode) result
    touchManagedPtr self
    return result'

#if ENABLE_OVERLOADING
data DOMNamedNodeMapItemMethodInfo
instance (signature ~ (CULong -> m WebKit2WebExtension.DOMNode.DOMNode), MonadIO m, IsDOMNamedNodeMap a) => O.MethodInfo DOMNamedNodeMapItemMethodInfo a signature where
    overloadedMethod _ = dOMNamedNodeMapItem

#endif

-- method DOMNamedNodeMap::remove_named_item
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNamedNodeMap"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNamedNodeMap", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name", 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 : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}))
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_named_node_map_remove_named_item" webkit_dom_named_node_map_remove_named_item ::
    Ptr DOMNamedNodeMap ->                  -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNamedNodeMap"})
    CString ->                              -- name : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr WebKit2WebExtension.DOMNode.DOMNode)

{-# DEPRECATED dOMNamedNodeMapRemoveNamedItem ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNamedNodeMapRemoveNamedItem ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNamedNodeMap a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNamedNodeMap.DOMNamedNodeMap' -}
    -> T.Text
    {- ^ /@name@/: A @/gchar/@ -}
    -> m WebKit2WebExtension.DOMNode.DOMNode
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMNamedNodeMapRemoveNamedItem self name = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    name' <- textToCString name
    onException (do
        result <- propagateGError $ webkit_dom_named_node_map_remove_named_item self' name'
        checkUnexpectedReturnNULL "dOMNamedNodeMapRemoveNamedItem" result
        result' <- (newObject WebKit2WebExtension.DOMNode.DOMNode) result
        touchManagedPtr self
        freeMem name'
        return result'
     ) (do
        freeMem name'
     )

#if ENABLE_OVERLOADING
data DOMNamedNodeMapRemoveNamedItemMethodInfo
instance (signature ~ (T.Text -> m WebKit2WebExtension.DOMNode.DOMNode), MonadIO m, IsDOMNamedNodeMap a) => O.MethodInfo DOMNamedNodeMapRemoveNamedItemMethodInfo a signature where
    overloadedMethod _ = dOMNamedNodeMapRemoveNamedItem

#endif

-- method DOMNamedNodeMap::remove_named_item_ns
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNamedNodeMap"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNamedNodeMap", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "namespaceURI", 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},Arg {argCName = "localName", 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 : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}))
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_named_node_map_remove_named_item_ns" webkit_dom_named_node_map_remove_named_item_ns ::
    Ptr DOMNamedNodeMap ->                  -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNamedNodeMap"})
    CString ->                              -- namespaceURI : TBasicType TUTF8
    CString ->                              -- localName : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr WebKit2WebExtension.DOMNode.DOMNode)

{-# DEPRECATED dOMNamedNodeMapRemoveNamedItemNs ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNamedNodeMapRemoveNamedItemNs ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNamedNodeMap a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNamedNodeMap.DOMNamedNodeMap' -}
    -> T.Text
    {- ^ /@namespaceURI@/: A @/gchar/@ -}
    -> T.Text
    {- ^ /@localName@/: A @/gchar/@ -}
    -> m WebKit2WebExtension.DOMNode.DOMNode
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMNamedNodeMapRemoveNamedItemNs self namespaceURI localName = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    namespaceURI' <- textToCString namespaceURI
    localName' <- textToCString localName
    onException (do
        result <- propagateGError $ webkit_dom_named_node_map_remove_named_item_ns self' namespaceURI' localName'
        checkUnexpectedReturnNULL "dOMNamedNodeMapRemoveNamedItemNs" result
        result' <- (newObject WebKit2WebExtension.DOMNode.DOMNode) result
        touchManagedPtr self
        freeMem namespaceURI'
        freeMem localName'
        return result'
     ) (do
        freeMem namespaceURI'
        freeMem localName'
     )

#if ENABLE_OVERLOADING
data DOMNamedNodeMapRemoveNamedItemNsMethodInfo
instance (signature ~ (T.Text -> T.Text -> m WebKit2WebExtension.DOMNode.DOMNode), MonadIO m, IsDOMNamedNodeMap a) => O.MethodInfo DOMNamedNodeMapRemoveNamedItemNsMethodInfo a signature where
    overloadedMethod _ = dOMNamedNodeMapRemoveNamedItemNs

#endif

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

foreign import ccall "webkit_dom_named_node_map_set_named_item" webkit_dom_named_node_map_set_named_item ::
    Ptr DOMNamedNodeMap ->                  -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNamedNodeMap"})
    Ptr WebKit2WebExtension.DOMNode.DOMNode -> -- node : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr WebKit2WebExtension.DOMNode.DOMNode)

{-# DEPRECATED dOMNamedNodeMapSetNamedItem ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNamedNodeMapSetNamedItem ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNamedNodeMap a, WebKit2WebExtension.DOMNode.IsDOMNode b) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNamedNodeMap.DOMNamedNodeMap' -}
    -> b
    {- ^ /@node@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m WebKit2WebExtension.DOMNode.DOMNode
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMNamedNodeMapSetNamedItem self node = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    node' <- unsafeManagedPtrCastPtr node
    onException (do
        result <- propagateGError $ webkit_dom_named_node_map_set_named_item self' node'
        checkUnexpectedReturnNULL "dOMNamedNodeMapSetNamedItem" result
        result' <- (newObject WebKit2WebExtension.DOMNode.DOMNode) result
        touchManagedPtr self
        touchManagedPtr node
        return result'
     ) (do
        return ()
     )

#if ENABLE_OVERLOADING
data DOMNamedNodeMapSetNamedItemMethodInfo
instance (signature ~ (b -> m WebKit2WebExtension.DOMNode.DOMNode), MonadIO m, IsDOMNamedNodeMap a, WebKit2WebExtension.DOMNode.IsDOMNode b) => O.MethodInfo DOMNamedNodeMapSetNamedItemMethodInfo a signature where
    overloadedMethod _ = dOMNamedNodeMapSetNamedItem

#endif

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

foreign import ccall "webkit_dom_named_node_map_set_named_item_ns" webkit_dom_named_node_map_set_named_item_ns ::
    Ptr DOMNamedNodeMap ->                  -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNamedNodeMap"})
    Ptr WebKit2WebExtension.DOMNode.DOMNode -> -- node : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr WebKit2WebExtension.DOMNode.DOMNode)

{-# DEPRECATED dOMNamedNodeMapSetNamedItemNs ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNamedNodeMapSetNamedItemNs ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNamedNodeMap a, WebKit2WebExtension.DOMNode.IsDOMNode b) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNamedNodeMap.DOMNamedNodeMap' -}
    -> b
    {- ^ /@node@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m WebKit2WebExtension.DOMNode.DOMNode
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMNamedNodeMapSetNamedItemNs self node = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    node' <- unsafeManagedPtrCastPtr node
    onException (do
        result <- propagateGError $ webkit_dom_named_node_map_set_named_item_ns self' node'
        checkUnexpectedReturnNULL "dOMNamedNodeMapSetNamedItemNs" result
        result' <- (newObject WebKit2WebExtension.DOMNode.DOMNode) result
        touchManagedPtr self
        touchManagedPtr node
        return result'
     ) (do
        return ()
     )

#if ENABLE_OVERLOADING
data DOMNamedNodeMapSetNamedItemNsMethodInfo
instance (signature ~ (b -> m WebKit2WebExtension.DOMNode.DOMNode), MonadIO m, IsDOMNamedNodeMap a, WebKit2WebExtension.DOMNode.IsDOMNode b) => O.MethodInfo DOMNamedNodeMapSetNamedItemNsMethodInfo a signature where
    overloadedMethod _ = dOMNamedNodeMapSetNamedItemNs

#endif