{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}

module GI.WebKit.Objects.DOMDOMPlugin
    ( 

-- * Exported types
    DOMDOMPlugin(..)                        ,
    IsDOMDOMPlugin                          ,
    toDOMDOMPlugin                          ,
    noDOMDOMPlugin                          ,


 -- * Methods
-- ** getDescription #method:getDescription#
    DOMDOMPluginGetDescriptionMethodInfo    ,
    dOMDOMPluginGetDescription              ,


-- ** getFilename #method:getFilename#
    DOMDOMPluginGetFilenameMethodInfo       ,
    dOMDOMPluginGetFilename                 ,


-- ** getLength #method:getLength#
    DOMDOMPluginGetLengthMethodInfo         ,
    dOMDOMPluginGetLength                   ,


-- ** getName #method:getName#
    DOMDOMPluginGetNameMethodInfo           ,
    dOMDOMPluginGetName                     ,


-- ** item #method:item#
    DOMDOMPluginItemMethodInfo              ,
    dOMDOMPluginItem                        ,


-- ** namedItem #method:namedItem#
    DOMDOMPluginNamedItemMethodInfo         ,
    dOMDOMPluginNamedItem                   ,




 -- * Properties
-- ** description #attr:description#
    DOMDOMPluginDescriptionPropertyInfo     ,
    dOMDOMPluginDescription                 ,
    getDOMDOMPluginDescription              ,


-- ** filename #attr:filename#
    DOMDOMPluginFilenamePropertyInfo        ,
    dOMDOMPluginFilename                    ,
    getDOMDOMPluginFilename                 ,


-- ** length #attr:length#
    DOMDOMPluginLengthPropertyInfo          ,
    dOMDOMPluginLength                      ,
    getDOMDOMPluginLength                   ,


-- ** name #attr:name#
    DOMDOMPluginNamePropertyInfo            ,
    dOMDOMPluginName                        ,
    getDOMDOMPluginName                     ,




    ) where

import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P

import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP

import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.WebKit.Objects.DOMDOMMimeType as WebKit.DOMDOMMimeType
import {-# SOURCE #-} qualified GI.WebKit.Objects.DOMObject as WebKit.DOMObject

newtype DOMDOMPlugin = DOMDOMPlugin (ManagedPtr DOMDOMPlugin)
foreign import ccall "webkit_dom_dom_plugin_get_type"
    c_webkit_dom_dom_plugin_get_type :: IO GType

instance GObject DOMDOMPlugin where
    gobjectType _ = c_webkit_dom_dom_plugin_get_type
    

class GObject o => IsDOMDOMPlugin o
#if MIN_VERSION_base(4,9,0)
instance {-# OVERLAPPABLE #-} (GObject a, O.UnknownAncestorError DOMDOMPlugin a) =>
    IsDOMDOMPlugin a
#endif
instance IsDOMDOMPlugin DOMDOMPlugin
instance WebKit.DOMObject.IsDOMObject DOMDOMPlugin
instance GObject.Object.IsObject DOMDOMPlugin

toDOMDOMPlugin :: IsDOMDOMPlugin o => o -> IO DOMDOMPlugin
toDOMDOMPlugin = unsafeCastTo DOMDOMPlugin

noDOMDOMPlugin :: Maybe DOMDOMPlugin
noDOMDOMPlugin = Nothing

type family ResolveDOMDOMPluginMethod (t :: Symbol) (o :: *) :: * where
    ResolveDOMDOMPluginMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveDOMDOMPluginMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveDOMDOMPluginMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveDOMDOMPluginMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveDOMDOMPluginMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveDOMDOMPluginMethod "item" o = DOMDOMPluginItemMethodInfo
    ResolveDOMDOMPluginMethod "namedItem" o = DOMDOMPluginNamedItemMethodInfo
    ResolveDOMDOMPluginMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveDOMDOMPluginMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveDOMDOMPluginMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveDOMDOMPluginMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveDOMDOMPluginMethod "replaceData" o = GObject.Object.ObjectReplaceDataMethodInfo
    ResolveDOMDOMPluginMethod "replaceQdata" o = GObject.Object.ObjectReplaceQdataMethodInfo
    ResolveDOMDOMPluginMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveDOMDOMPluginMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveDOMDOMPluginMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveDOMDOMPluginMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveDOMDOMPluginMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveDOMDOMPluginMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveDOMDOMPluginMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveDOMDOMPluginMethod "getDescription" o = DOMDOMPluginGetDescriptionMethodInfo
    ResolveDOMDOMPluginMethod "getFilename" o = DOMDOMPluginGetFilenameMethodInfo
    ResolveDOMDOMPluginMethod "getLength" o = DOMDOMPluginGetLengthMethodInfo
    ResolveDOMDOMPluginMethod "getName" o = DOMDOMPluginGetNameMethodInfo
    ResolveDOMDOMPluginMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveDOMDOMPluginMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveDOMDOMPluginMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveDOMDOMPluginMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveDOMDOMPluginMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveDOMDOMPluginMethod t DOMDOMPlugin, O.MethodInfo info DOMDOMPlugin p) => O.IsLabelProxy t (DOMDOMPlugin -> p) where
    fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)

#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveDOMDOMPluginMethod t DOMDOMPlugin, O.MethodInfo info DOMDOMPlugin p) => O.IsLabel t (DOMDOMPlugin -> p) where
    fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif

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

getDOMDOMPluginDescription :: (MonadIO m, IsDOMDOMPlugin o) => o -> m (Maybe T.Text)
getDOMDOMPluginDescription obj = liftIO $ getObjectPropertyString obj "description"

data DOMDOMPluginDescriptionPropertyInfo
instance AttrInfo DOMDOMPluginDescriptionPropertyInfo where
    type AttrAllowedOps DOMDOMPluginDescriptionPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DOMDOMPluginDescriptionPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMDOMPluginDescriptionPropertyInfo = IsDOMDOMPlugin
    type AttrGetType DOMDOMPluginDescriptionPropertyInfo = (Maybe T.Text)
    type AttrLabel DOMDOMPluginDescriptionPropertyInfo = "description"
    type AttrOrigin DOMDOMPluginDescriptionPropertyInfo = DOMDOMPlugin
    attrGet _ = getDOMDOMPluginDescription
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

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

getDOMDOMPluginFilename :: (MonadIO m, IsDOMDOMPlugin o) => o -> m (Maybe T.Text)
getDOMDOMPluginFilename obj = liftIO $ getObjectPropertyString obj "filename"

data DOMDOMPluginFilenamePropertyInfo
instance AttrInfo DOMDOMPluginFilenamePropertyInfo where
    type AttrAllowedOps DOMDOMPluginFilenamePropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DOMDOMPluginFilenamePropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMDOMPluginFilenamePropertyInfo = IsDOMDOMPlugin
    type AttrGetType DOMDOMPluginFilenamePropertyInfo = (Maybe T.Text)
    type AttrLabel DOMDOMPluginFilenamePropertyInfo = "filename"
    type AttrOrigin DOMDOMPluginFilenamePropertyInfo = DOMDOMPlugin
    attrGet _ = getDOMDOMPluginFilename
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

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

getDOMDOMPluginLength :: (MonadIO m, IsDOMDOMPlugin o) => o -> m CULong
getDOMDOMPluginLength obj = liftIO $ getObjectPropertyULong obj "length"

data DOMDOMPluginLengthPropertyInfo
instance AttrInfo DOMDOMPluginLengthPropertyInfo where
    type AttrAllowedOps DOMDOMPluginLengthPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMDOMPluginLengthPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMDOMPluginLengthPropertyInfo = IsDOMDOMPlugin
    type AttrGetType DOMDOMPluginLengthPropertyInfo = CULong
    type AttrLabel DOMDOMPluginLengthPropertyInfo = "length"
    type AttrOrigin DOMDOMPluginLengthPropertyInfo = DOMDOMPlugin
    attrGet _ = getDOMDOMPluginLength
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

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

getDOMDOMPluginName :: (MonadIO m, IsDOMDOMPlugin o) => o -> m (Maybe T.Text)
getDOMDOMPluginName obj = liftIO $ getObjectPropertyString obj "name"

data DOMDOMPluginNamePropertyInfo
instance AttrInfo DOMDOMPluginNamePropertyInfo where
    type AttrAllowedOps DOMDOMPluginNamePropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DOMDOMPluginNamePropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMDOMPluginNamePropertyInfo = IsDOMDOMPlugin
    type AttrGetType DOMDOMPluginNamePropertyInfo = (Maybe T.Text)
    type AttrLabel DOMDOMPluginNamePropertyInfo = "name"
    type AttrOrigin DOMDOMPluginNamePropertyInfo = DOMDOMPlugin
    attrGet _ = getDOMDOMPluginName
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

instance O.HasAttributeList DOMDOMPlugin
type instance O.AttributeList DOMDOMPlugin = DOMDOMPluginAttributeList
type DOMDOMPluginAttributeList = ('[ '("coreObject", WebKit.DOMObject.DOMObjectCoreObjectPropertyInfo), '("description", DOMDOMPluginDescriptionPropertyInfo), '("filename", DOMDOMPluginFilenamePropertyInfo), '("length", DOMDOMPluginLengthPropertyInfo), '("name", DOMDOMPluginNamePropertyInfo)] :: [(Symbol, *)])

dOMDOMPluginDescription :: AttrLabelProxy "description"
dOMDOMPluginDescription = AttrLabelProxy

dOMDOMPluginFilename :: AttrLabelProxy "filename"
dOMDOMPluginFilename = AttrLabelProxy

dOMDOMPluginLength :: AttrLabelProxy "length"
dOMDOMPluginLength = AttrLabelProxy

dOMDOMPluginName :: AttrLabelProxy "name"
dOMDOMPluginName = AttrLabelProxy

type instance O.SignalList DOMDOMPlugin = DOMDOMPluginSignalList
type DOMDOMPluginSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])

-- method DOMDOMPlugin::get_description
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit", name = "DOMDOMPlugin"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMDOMPlugin", 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_dom_plugin_get_description" webkit_dom_dom_plugin_get_description :: 
    Ptr DOMDOMPlugin ->                     -- self : TInterface (Name {namespace = "WebKit", name = "DOMDOMPlugin"})
    IO CString

{- |
/No description available in the introspection data./
-}
dOMDOMPluginGetDescription ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMDOMPlugin a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit.Objects.DOMDOMPlugin.DOMDOMPlugin' -}
    -> m T.Text
    {- ^ __Returns:__ A @/gchar/@ -}
dOMDOMPluginGetDescription self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_dom_plugin_get_description self'
    checkUnexpectedReturnNULL "dOMDOMPluginGetDescription" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr self
    return result'

data DOMDOMPluginGetDescriptionMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsDOMDOMPlugin a) => O.MethodInfo DOMDOMPluginGetDescriptionMethodInfo a signature where
    overloadedMethod _ = dOMDOMPluginGetDescription

-- method DOMDOMPlugin::get_filename
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit", name = "DOMDOMPlugin"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMDOMPlugin", 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_dom_plugin_get_filename" webkit_dom_dom_plugin_get_filename :: 
    Ptr DOMDOMPlugin ->                     -- self : TInterface (Name {namespace = "WebKit", name = "DOMDOMPlugin"})
    IO CString

{- |
/No description available in the introspection data./
-}
dOMDOMPluginGetFilename ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMDOMPlugin a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit.Objects.DOMDOMPlugin.DOMDOMPlugin' -}
    -> m T.Text
    {- ^ __Returns:__ A @/gchar/@ -}
dOMDOMPluginGetFilename self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_dom_plugin_get_filename self'
    checkUnexpectedReturnNULL "dOMDOMPluginGetFilename" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr self
    return result'

data DOMDOMPluginGetFilenameMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsDOMDOMPlugin a) => O.MethodInfo DOMDOMPluginGetFilenameMethodInfo a signature where
    overloadedMethod _ = dOMDOMPluginGetFilename

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

{- |
/No description available in the introspection data./
-}
dOMDOMPluginGetLength ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMDOMPlugin a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit.Objects.DOMDOMPlugin.DOMDOMPlugin' -}
    -> m CULong
    {- ^ __Returns:__ A @/gulong/@ -}
dOMDOMPluginGetLength self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_dom_plugin_get_length self'
    touchManagedPtr self
    return result

data DOMDOMPluginGetLengthMethodInfo
instance (signature ~ (m CULong), MonadIO m, IsDOMDOMPlugin a) => O.MethodInfo DOMDOMPluginGetLengthMethodInfo a signature where
    overloadedMethod _ = dOMDOMPluginGetLength

-- method DOMDOMPlugin::get_name
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit", name = "DOMDOMPlugin"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMDOMPlugin", 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_dom_plugin_get_name" webkit_dom_dom_plugin_get_name :: 
    Ptr DOMDOMPlugin ->                     -- self : TInterface (Name {namespace = "WebKit", name = "DOMDOMPlugin"})
    IO CString

{- |
/No description available in the introspection data./
-}
dOMDOMPluginGetName ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMDOMPlugin a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit.Objects.DOMDOMPlugin.DOMDOMPlugin' -}
    -> m T.Text
    {- ^ __Returns:__ A @/gchar/@ -}
dOMDOMPluginGetName self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_dom_plugin_get_name self'
    checkUnexpectedReturnNULL "dOMDOMPluginGetName" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr self
    return result'

data DOMDOMPluginGetNameMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsDOMDOMPlugin a) => O.MethodInfo DOMDOMPluginGetNameMethodInfo a signature where
    overloadedMethod _ = dOMDOMPluginGetName

-- method DOMDOMPlugin::item
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit", name = "DOMDOMPlugin"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMDOMPlugin", 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 = "WebKit", name = "DOMDOMMimeType"}))
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_dom_plugin_item" webkit_dom_dom_plugin_item :: 
    Ptr DOMDOMPlugin ->                     -- self : TInterface (Name {namespace = "WebKit", name = "DOMDOMPlugin"})
    CULong ->                               -- index : TBasicType TULong
    IO (Ptr WebKit.DOMDOMMimeType.DOMDOMMimeType)

{- |
/No description available in the introspection data./
-}
dOMDOMPluginItem ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMDOMPlugin a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit.Objects.DOMDOMPlugin.DOMDOMPlugin' -}
    -> CULong
    {- ^ /@index@/: A @/gulong/@ -}
    -> m WebKit.DOMDOMMimeType.DOMDOMMimeType
    {- ^ __Returns:__ A 'GI.WebKit.Objects.DOMDOMMimeType.DOMDOMMimeType' -}
dOMDOMPluginItem self index = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_dom_plugin_item self' index
    checkUnexpectedReturnNULL "dOMDOMPluginItem" result
    result' <- (wrapObject WebKit.DOMDOMMimeType.DOMDOMMimeType) result
    touchManagedPtr self
    return result'

data DOMDOMPluginItemMethodInfo
instance (signature ~ (CULong -> m WebKit.DOMDOMMimeType.DOMDOMMimeType), MonadIO m, IsDOMDOMPlugin a) => O.MethodInfo DOMDOMPluginItemMethodInfo a signature where
    overloadedMethod _ = dOMDOMPluginItem

-- method DOMDOMPlugin::named_item
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit", name = "DOMDOMPlugin"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMDOMPlugin", 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 = "WebKit", name = "DOMDOMMimeType"}))
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_dom_plugin_named_item" webkit_dom_dom_plugin_named_item :: 
    Ptr DOMDOMPlugin ->                     -- self : TInterface (Name {namespace = "WebKit", name = "DOMDOMPlugin"})
    CString ->                              -- name : TBasicType TUTF8
    IO (Ptr WebKit.DOMDOMMimeType.DOMDOMMimeType)

{- |
/No description available in the introspection data./
-}
dOMDOMPluginNamedItem ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMDOMPlugin a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit.Objects.DOMDOMPlugin.DOMDOMPlugin' -}
    -> T.Text
    {- ^ /@name@/: A @/gchar/@ -}
    -> m WebKit.DOMDOMMimeType.DOMDOMMimeType
    {- ^ __Returns:__ A 'GI.WebKit.Objects.DOMDOMMimeType.DOMDOMMimeType' -}
dOMDOMPluginNamedItem self name = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    name' <- textToCString name
    result <- webkit_dom_dom_plugin_named_item self' name'
    checkUnexpectedReturnNULL "dOMDOMPluginNamedItem" result
    result' <- (wrapObject WebKit.DOMDOMMimeType.DOMDOMMimeType) result
    touchManagedPtr self
    freeMem name'
    return result'

data DOMDOMPluginNamedItemMethodInfo
instance (signature ~ (T.Text -> m WebKit.DOMDOMMimeType.DOMDOMMimeType), MonadIO m, IsDOMDOMPlugin a) => O.MethodInfo DOMDOMPluginNamedItemMethodInfo a signature where
    overloadedMethod _ = dOMDOMPluginNamedItem