{-# 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.Structs.ConsoleMessage
    ( 

-- * Exported types
    ConsoleMessage(..)                      ,


 -- * Methods
-- | 
-- 
--  === __Click to display all available methods, including inherited ones__
-- ==== Methods
-- [copy]("GI.WebKit2WebExtension.Structs.ConsoleMessage#g:method:copy"), [free]("GI.WebKit2WebExtension.Structs.ConsoleMessage#g:method:free").
-- 
-- ==== Getters
-- [getLevel]("GI.WebKit2WebExtension.Structs.ConsoleMessage#g:method:getLevel"), [getLine]("GI.WebKit2WebExtension.Structs.ConsoleMessage#g:method:getLine"), [getSource]("GI.WebKit2WebExtension.Structs.ConsoleMessage#g:method:getSource"), [getSourceId]("GI.WebKit2WebExtension.Structs.ConsoleMessage#g:method:getSourceId"), [getText]("GI.WebKit2WebExtension.Structs.ConsoleMessage#g:method:getText").
-- 
-- ==== Setters
-- /None/.

#if defined(ENABLE_OVERLOADING)
    ResolveConsoleMessageMethod             ,
#endif

-- ** copy #method:copy#

#if defined(ENABLE_OVERLOADING)
    ConsoleMessageCopyMethodInfo            ,
#endif
    consoleMessageCopy                      ,


-- ** free #method:free#

#if defined(ENABLE_OVERLOADING)
    ConsoleMessageFreeMethodInfo            ,
#endif
    consoleMessageFree                      ,


-- ** getLevel #method:getLevel#

#if defined(ENABLE_OVERLOADING)
    ConsoleMessageGetLevelMethodInfo        ,
#endif
    consoleMessageGetLevel                  ,


-- ** getLine #method:getLine#

#if defined(ENABLE_OVERLOADING)
    ConsoleMessageGetLineMethodInfo         ,
#endif
    consoleMessageGetLine                   ,


-- ** getSource #method:getSource#

#if defined(ENABLE_OVERLOADING)
    ConsoleMessageGetSourceMethodInfo       ,
#endif
    consoleMessageGetSource                 ,


-- ** getSourceId #method:getSourceId#

#if defined(ENABLE_OVERLOADING)
    ConsoleMessageGetSourceIdMethodInfo     ,
#endif
    consoleMessageGetSourceId               ,


-- ** getText #method:getText#

#if defined(ENABLE_OVERLOADING)
    ConsoleMessageGetTextMethodInfo         ,
#endif
    consoleMessageGetText                   ,




    ) 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.Kind as DK
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 {-# SOURCE #-} qualified GI.WebKit2WebExtension.Enums as WebKit2WebExtension.Enums

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

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

foreign import ccall "webkit_console_message_get_type" c_webkit_console_message_get_type :: 
    IO GType

type instance O.ParentTypes ConsoleMessage = '[]
instance O.HasParentTypes ConsoleMessage

instance B.Types.TypedObject ConsoleMessage where
    glibType :: IO GType
glibType = IO GType
c_webkit_console_message_get_type

instance B.Types.GBoxed ConsoleMessage

-- | Convert 'ConsoleMessage' 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 ConsoleMessage) where
    gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_webkit_console_message_get_type
    gvalueSet_ :: Ptr GValue -> Maybe ConsoleMessage -> IO ()
gvalueSet_ Ptr GValue
gv Maybe ConsoleMessage
P.Nothing = Ptr GValue -> Ptr ConsoleMessage -> IO ()
forall a. Ptr GValue -> Ptr a -> IO ()
B.GValue.set_boxed Ptr GValue
gv (Ptr ConsoleMessage
forall a. Ptr a
FP.nullPtr :: FP.Ptr ConsoleMessage)
    gvalueSet_ Ptr GValue
gv (P.Just ConsoleMessage
obj) = ConsoleMessage -> (Ptr ConsoleMessage -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr ConsoleMessage
obj (Ptr GValue -> Ptr ConsoleMessage -> IO ()
forall a. Ptr GValue -> Ptr a -> IO ()
B.GValue.set_boxed Ptr GValue
gv)
    gvalueGet_ :: Ptr GValue -> IO (Maybe ConsoleMessage)
gvalueGet_ Ptr GValue
gv = do
        Ptr ConsoleMessage
ptr <- Ptr GValue -> IO (Ptr ConsoleMessage)
forall b. Ptr GValue -> IO (Ptr b)
B.GValue.get_boxed Ptr GValue
gv :: IO (Ptr ConsoleMessage)
        if Ptr ConsoleMessage
ptr Ptr ConsoleMessage -> Ptr ConsoleMessage -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr ConsoleMessage
forall a. Ptr a
FP.nullPtr
        then ConsoleMessage -> Maybe ConsoleMessage
forall a. a -> Maybe a
P.Just (ConsoleMessage -> Maybe ConsoleMessage)
-> IO ConsoleMessage -> IO (Maybe ConsoleMessage)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr ConsoleMessage -> ConsoleMessage)
-> Ptr ConsoleMessage -> IO ConsoleMessage
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
B.ManagedPtr.newBoxed ManagedPtr ConsoleMessage -> ConsoleMessage
ConsoleMessage Ptr ConsoleMessage
ptr
        else Maybe ConsoleMessage -> IO (Maybe ConsoleMessage)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe ConsoleMessage
forall a. Maybe a
P.Nothing
        
    


#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList ConsoleMessage
type instance O.AttributeList ConsoleMessage = ConsoleMessageAttributeList
type ConsoleMessageAttributeList = ('[ ] :: [(Symbol, DK.Type)])
#endif

-- method ConsoleMessage::copy
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "console_message"
--           , argType =
--               TInterface
--                 Name
--                   { namespace = "WebKit2WebExtension" , name = "ConsoleMessage" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WebKitConsoleMessage"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just
--               (TInterface
--                  Name
--                    { namespace = "WebKit2WebExtension" , name = "ConsoleMessage" })
-- throws : False
-- Skip return : False

foreign import ccall "webkit_console_message_copy" webkit_console_message_copy :: 
    Ptr ConsoleMessage ->                   -- console_message : TInterface (Name {namespace = "WebKit2WebExtension", name = "ConsoleMessage"})
    IO (Ptr ConsoleMessage)

{-# DEPRECATED consoleMessageCopy ["(Since version 2.40)"] #-}
-- | Make a copy of /@consoleMessage@/.
-- 
-- /Since: 2.12/
consoleMessageCopy ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    ConsoleMessage
    -- ^ /@consoleMessage@/: a t'GI.WebKit2WebExtension.Structs.ConsoleMessage.ConsoleMessage'
    -> m ConsoleMessage
    -- ^ __Returns:__ A copy of passed in t'GI.WebKit2WebExtension.Structs.ConsoleMessage.ConsoleMessage'
consoleMessageCopy :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
ConsoleMessage -> m ConsoleMessage
consoleMessageCopy ConsoleMessage
consoleMessage = IO ConsoleMessage -> m ConsoleMessage
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO ConsoleMessage -> m ConsoleMessage)
-> IO ConsoleMessage -> m ConsoleMessage
forall a b. (a -> b) -> a -> b
$ do
    Ptr ConsoleMessage
consoleMessage' <- ConsoleMessage -> IO (Ptr ConsoleMessage)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr ConsoleMessage
consoleMessage
    Ptr ConsoleMessage
result <- Ptr ConsoleMessage -> IO (Ptr ConsoleMessage)
webkit_console_message_copy Ptr ConsoleMessage
consoleMessage'
    Text -> Ptr ConsoleMessage -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"consoleMessageCopy" Ptr ConsoleMessage
result
    ConsoleMessage
result' <- ((ManagedPtr ConsoleMessage -> ConsoleMessage)
-> Ptr ConsoleMessage -> IO ConsoleMessage
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr ConsoleMessage -> ConsoleMessage
ConsoleMessage) Ptr ConsoleMessage
result
    ConsoleMessage -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr ConsoleMessage
consoleMessage
    ConsoleMessage -> IO ConsoleMessage
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ConsoleMessage
result'

#if defined(ENABLE_OVERLOADING)
data ConsoleMessageCopyMethodInfo
instance (signature ~ (m ConsoleMessage), MonadIO m) => O.OverloadedMethod ConsoleMessageCopyMethodInfo ConsoleMessage signature where
    overloadedMethod = consoleMessageCopy

instance O.OverloadedMethodInfo ConsoleMessageCopyMethodInfo ConsoleMessage where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.WebKit2WebExtension.Structs.ConsoleMessage.consoleMessageCopy",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2webextension-4.0.30/docs/GI-WebKit2WebExtension-Structs-ConsoleMessage.html#v:consoleMessageCopy"
        })


#endif

-- method ConsoleMessage::free
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "console_message"
--           , argType =
--               TInterface
--                 Name
--                   { namespace = "WebKit2WebExtension" , name = "ConsoleMessage" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WebKitConsoleMessage"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "webkit_console_message_free" webkit_console_message_free :: 
    Ptr ConsoleMessage ->                   -- console_message : TInterface (Name {namespace = "WebKit2WebExtension", name = "ConsoleMessage"})
    IO ()

{-# DEPRECATED consoleMessageFree ["(Since version 2.40)"] #-}
-- | Free the t'GI.WebKit2WebExtension.Structs.ConsoleMessage.ConsoleMessage'
-- 
-- /Since: 2.12/
consoleMessageFree ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    ConsoleMessage
    -- ^ /@consoleMessage@/: a t'GI.WebKit2WebExtension.Structs.ConsoleMessage.ConsoleMessage'
    -> m ()
consoleMessageFree :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
ConsoleMessage -> m ()
consoleMessageFree ConsoleMessage
consoleMessage = 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 ConsoleMessage
consoleMessage' <- ConsoleMessage -> IO (Ptr ConsoleMessage)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr ConsoleMessage
consoleMessage
    Ptr ConsoleMessage -> IO ()
webkit_console_message_free Ptr ConsoleMessage
consoleMessage'
    ConsoleMessage -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr ConsoleMessage
consoleMessage
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data ConsoleMessageFreeMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.OverloadedMethod ConsoleMessageFreeMethodInfo ConsoleMessage signature where
    overloadedMethod = consoleMessageFree

instance O.OverloadedMethodInfo ConsoleMessageFreeMethodInfo ConsoleMessage where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.WebKit2WebExtension.Structs.ConsoleMessage.consoleMessageFree",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2webextension-4.0.30/docs/GI-WebKit2WebExtension-Structs-ConsoleMessage.html#v:consoleMessageFree"
        })


#endif

-- method ConsoleMessage::get_level
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "console_message"
--           , argType =
--               TInterface
--                 Name
--                   { namespace = "WebKit2WebExtension" , name = "ConsoleMessage" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WebKitConsoleMessage"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just
--               (TInterface
--                  Name
--                    { namespace = "WebKit2WebExtension"
--                    , name = "ConsoleMessageLevel"
--                    })
-- throws : False
-- Skip return : False

foreign import ccall "webkit_console_message_get_level" webkit_console_message_get_level :: 
    Ptr ConsoleMessage ->                   -- console_message : TInterface (Name {namespace = "WebKit2WebExtension", name = "ConsoleMessage"})
    IO CUInt

{-# DEPRECATED consoleMessageGetLevel ["(Since version 2.40)"] #-}
-- | Gets the log level of a t'GI.WebKit2WebExtension.Structs.ConsoleMessage.ConsoleMessage'
-- 
-- /Since: 2.12/
consoleMessageGetLevel ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    ConsoleMessage
    -- ^ /@consoleMessage@/: a t'GI.WebKit2WebExtension.Structs.ConsoleMessage.ConsoleMessage'
    -> m WebKit2WebExtension.Enums.ConsoleMessageLevel
    -- ^ __Returns:__ a t'GI.WebKit2WebExtension.Enums.ConsoleMessageLevel' indicating the log level of /@consoleMessage@/
consoleMessageGetLevel :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
ConsoleMessage -> m ConsoleMessageLevel
consoleMessageGetLevel ConsoleMessage
consoleMessage = IO ConsoleMessageLevel -> m ConsoleMessageLevel
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO ConsoleMessageLevel -> m ConsoleMessageLevel)
-> IO ConsoleMessageLevel -> m ConsoleMessageLevel
forall a b. (a -> b) -> a -> b
$ do
    Ptr ConsoleMessage
consoleMessage' <- ConsoleMessage -> IO (Ptr ConsoleMessage)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr ConsoleMessage
consoleMessage
    CUInt
result <- Ptr ConsoleMessage -> IO CUInt
webkit_console_message_get_level Ptr ConsoleMessage
consoleMessage'
    let result' :: ConsoleMessageLevel
result' = (Int -> ConsoleMessageLevel
forall a. Enum a => Int -> a
toEnum (Int -> ConsoleMessageLevel)
-> (CUInt -> Int) -> CUInt -> ConsoleMessageLevel
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
result
    ConsoleMessage -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr ConsoleMessage
consoleMessage
    ConsoleMessageLevel -> IO ConsoleMessageLevel
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ConsoleMessageLevel
result'

#if defined(ENABLE_OVERLOADING)
data ConsoleMessageGetLevelMethodInfo
instance (signature ~ (m WebKit2WebExtension.Enums.ConsoleMessageLevel), MonadIO m) => O.OverloadedMethod ConsoleMessageGetLevelMethodInfo ConsoleMessage signature where
    overloadedMethod = consoleMessageGetLevel

instance O.OverloadedMethodInfo ConsoleMessageGetLevelMethodInfo ConsoleMessage where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.WebKit2WebExtension.Structs.ConsoleMessage.consoleMessageGetLevel",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2webextension-4.0.30/docs/GI-WebKit2WebExtension-Structs-ConsoleMessage.html#v:consoleMessageGetLevel"
        })


#endif

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

foreign import ccall "webkit_console_message_get_line" webkit_console_message_get_line :: 
    Ptr ConsoleMessage ->                   -- console_message : TInterface (Name {namespace = "WebKit2WebExtension", name = "ConsoleMessage"})
    IO Word32

{-# DEPRECATED consoleMessageGetLine ["(Since version 2.40)"] #-}
-- | Gets the line number of a t'GI.WebKit2WebExtension.Structs.ConsoleMessage.ConsoleMessage'
-- 
-- /Since: 2.12/
consoleMessageGetLine ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    ConsoleMessage
    -- ^ /@consoleMessage@/: a t'GI.WebKit2WebExtension.Structs.ConsoleMessage.ConsoleMessage'
    -> m Word32
    -- ^ __Returns:__ the line number of /@consoleMessage@/
consoleMessageGetLine :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
ConsoleMessage -> m Word32
consoleMessageGetLine ConsoleMessage
consoleMessage = IO Word32 -> m Word32
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ do
    Ptr ConsoleMessage
consoleMessage' <- ConsoleMessage -> IO (Ptr ConsoleMessage)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr ConsoleMessage
consoleMessage
    Word32
result <- Ptr ConsoleMessage -> IO Word32
webkit_console_message_get_line Ptr ConsoleMessage
consoleMessage'
    ConsoleMessage -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr ConsoleMessage
consoleMessage
    Word32 -> IO Word32
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result

#if defined(ENABLE_OVERLOADING)
data ConsoleMessageGetLineMethodInfo
instance (signature ~ (m Word32), MonadIO m) => O.OverloadedMethod ConsoleMessageGetLineMethodInfo ConsoleMessage signature where
    overloadedMethod = consoleMessageGetLine

instance O.OverloadedMethodInfo ConsoleMessageGetLineMethodInfo ConsoleMessage where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.WebKit2WebExtension.Structs.ConsoleMessage.consoleMessageGetLine",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2webextension-4.0.30/docs/GI-WebKit2WebExtension-Structs-ConsoleMessage.html#v:consoleMessageGetLine"
        })


#endif

-- method ConsoleMessage::get_source
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "console_message"
--           , argType =
--               TInterface
--                 Name
--                   { namespace = "WebKit2WebExtension" , name = "ConsoleMessage" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WebKitConsoleMessage"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just
--               (TInterface
--                  Name
--                    { namespace = "WebKit2WebExtension"
--                    , name = "ConsoleMessageSource"
--                    })
-- throws : False
-- Skip return : False

foreign import ccall "webkit_console_message_get_source" webkit_console_message_get_source :: 
    Ptr ConsoleMessage ->                   -- console_message : TInterface (Name {namespace = "WebKit2WebExtension", name = "ConsoleMessage"})
    IO CUInt

{-# DEPRECATED consoleMessageGetSource ["(Since version 2.40)"] #-}
-- | Gets the source of a t'GI.WebKit2WebExtension.Structs.ConsoleMessage.ConsoleMessage'
-- 
-- /Since: 2.12/
consoleMessageGetSource ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    ConsoleMessage
    -- ^ /@consoleMessage@/: a t'GI.WebKit2WebExtension.Structs.ConsoleMessage.ConsoleMessage'
    -> m WebKit2WebExtension.Enums.ConsoleMessageSource
    -- ^ __Returns:__ a t'GI.WebKit2WebExtension.Enums.ConsoleMessageSource' indicating the source of /@consoleMessage@/
consoleMessageGetSource :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
ConsoleMessage -> m ConsoleMessageSource
consoleMessageGetSource ConsoleMessage
consoleMessage = IO ConsoleMessageSource -> m ConsoleMessageSource
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO ConsoleMessageSource -> m ConsoleMessageSource)
-> IO ConsoleMessageSource -> m ConsoleMessageSource
forall a b. (a -> b) -> a -> b
$ do
    Ptr ConsoleMessage
consoleMessage' <- ConsoleMessage -> IO (Ptr ConsoleMessage)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr ConsoleMessage
consoleMessage
    CUInt
result <- Ptr ConsoleMessage -> IO CUInt
webkit_console_message_get_source Ptr ConsoleMessage
consoleMessage'
    let result' :: ConsoleMessageSource
result' = (Int -> ConsoleMessageSource
forall a. Enum a => Int -> a
toEnum (Int -> ConsoleMessageSource)
-> (CUInt -> Int) -> CUInt -> ConsoleMessageSource
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
result
    ConsoleMessage -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr ConsoleMessage
consoleMessage
    ConsoleMessageSource -> IO ConsoleMessageSource
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ConsoleMessageSource
result'

#if defined(ENABLE_OVERLOADING)
data ConsoleMessageGetSourceMethodInfo
instance (signature ~ (m WebKit2WebExtension.Enums.ConsoleMessageSource), MonadIO m) => O.OverloadedMethod ConsoleMessageGetSourceMethodInfo ConsoleMessage signature where
    overloadedMethod = consoleMessageGetSource

instance O.OverloadedMethodInfo ConsoleMessageGetSourceMethodInfo ConsoleMessage where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.WebKit2WebExtension.Structs.ConsoleMessage.consoleMessageGetSource",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2webextension-4.0.30/docs/GI-WebKit2WebExtension-Structs-ConsoleMessage.html#v:consoleMessageGetSource"
        })


#endif

-- method ConsoleMessage::get_source_id
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "console_message"
--           , argType =
--               TInterface
--                 Name
--                   { namespace = "WebKit2WebExtension" , name = "ConsoleMessage" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WebKitConsoleMessage"
--                 , 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_console_message_get_source_id" webkit_console_message_get_source_id :: 
    Ptr ConsoleMessage ->                   -- console_message : TInterface (Name {namespace = "WebKit2WebExtension", name = "ConsoleMessage"})
    IO CString

{-# DEPRECATED consoleMessageGetSourceId ["(Since version 2.40)"] #-}
-- | Gets the source identifier of a t'GI.WebKit2WebExtension.Structs.ConsoleMessage.ConsoleMessage'
-- 
-- /Since: 2.12/
consoleMessageGetSourceId ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    ConsoleMessage
    -- ^ /@consoleMessage@/: a t'GI.WebKit2WebExtension.Structs.ConsoleMessage.ConsoleMessage'
    -> m T.Text
    -- ^ __Returns:__ the source identifier of /@consoleMessage@/
consoleMessageGetSourceId :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
ConsoleMessage -> m Text
consoleMessageGetSourceId ConsoleMessage
consoleMessage = 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 ConsoleMessage
consoleMessage' <- ConsoleMessage -> IO (Ptr ConsoleMessage)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr ConsoleMessage
consoleMessage
    CString
result <- Ptr ConsoleMessage -> IO CString
webkit_console_message_get_source_id Ptr ConsoleMessage
consoleMessage'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"consoleMessageGetSourceId" CString
result
    Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
    ConsoleMessage -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr ConsoleMessage
consoleMessage
    Text -> IO Text
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'

#if defined(ENABLE_OVERLOADING)
data ConsoleMessageGetSourceIdMethodInfo
instance (signature ~ (m T.Text), MonadIO m) => O.OverloadedMethod ConsoleMessageGetSourceIdMethodInfo ConsoleMessage signature where
    overloadedMethod = consoleMessageGetSourceId

instance O.OverloadedMethodInfo ConsoleMessageGetSourceIdMethodInfo ConsoleMessage where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.WebKit2WebExtension.Structs.ConsoleMessage.consoleMessageGetSourceId",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2webextension-4.0.30/docs/GI-WebKit2WebExtension-Structs-ConsoleMessage.html#v:consoleMessageGetSourceId"
        })


#endif

-- method ConsoleMessage::get_text
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "console_message"
--           , argType =
--               TInterface
--                 Name
--                   { namespace = "WebKit2WebExtension" , name = "ConsoleMessage" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WebKitConsoleMessage"
--                 , 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_console_message_get_text" webkit_console_message_get_text :: 
    Ptr ConsoleMessage ->                   -- console_message : TInterface (Name {namespace = "WebKit2WebExtension", name = "ConsoleMessage"})
    IO CString

{-# DEPRECATED consoleMessageGetText ["(Since version 2.40)"] #-}
-- | Gets the text message of a t'GI.WebKit2WebExtension.Structs.ConsoleMessage.ConsoleMessage'
-- 
-- /Since: 2.12/
consoleMessageGetText ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    ConsoleMessage
    -- ^ /@consoleMessage@/: a t'GI.WebKit2WebExtension.Structs.ConsoleMessage.ConsoleMessage'
    -> m T.Text
    -- ^ __Returns:__ the text message of /@consoleMessage@/
consoleMessageGetText :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
ConsoleMessage -> m Text
consoleMessageGetText ConsoleMessage
consoleMessage = 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 ConsoleMessage
consoleMessage' <- ConsoleMessage -> IO (Ptr ConsoleMessage)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr ConsoleMessage
consoleMessage
    CString
result <- Ptr ConsoleMessage -> IO CString
webkit_console_message_get_text Ptr ConsoleMessage
consoleMessage'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"consoleMessageGetText" CString
result
    Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
    ConsoleMessage -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr ConsoleMessage
consoleMessage
    Text -> IO Text
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'

#if defined(ENABLE_OVERLOADING)
data ConsoleMessageGetTextMethodInfo
instance (signature ~ (m T.Text), MonadIO m) => O.OverloadedMethod ConsoleMessageGetTextMethodInfo ConsoleMessage signature where
    overloadedMethod = consoleMessageGetText

instance O.OverloadedMethodInfo ConsoleMessageGetTextMethodInfo ConsoleMessage where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.WebKit2WebExtension.Structs.ConsoleMessage.consoleMessageGetText",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2webextension-4.0.30/docs/GI-WebKit2WebExtension-Structs-ConsoleMessage.html#v:consoleMessageGetText"
        })


#endif

#if defined(ENABLE_OVERLOADING)
type family ResolveConsoleMessageMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
    ResolveConsoleMessageMethod "copy" o = ConsoleMessageCopyMethodInfo
    ResolveConsoleMessageMethod "free" o = ConsoleMessageFreeMethodInfo
    ResolveConsoleMessageMethod "getLevel" o = ConsoleMessageGetLevelMethodInfo
    ResolveConsoleMessageMethod "getLine" o = ConsoleMessageGetLineMethodInfo
    ResolveConsoleMessageMethod "getSource" o = ConsoleMessageGetSourceMethodInfo
    ResolveConsoleMessageMethod "getSourceId" o = ConsoleMessageGetSourceIdMethodInfo
    ResolveConsoleMessageMethod "getText" o = ConsoleMessageGetTextMethodInfo
    ResolveConsoleMessageMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveConsoleMessageMethod t ConsoleMessage, O.OverloadedMethod info ConsoleMessage p) => OL.IsLabel t (ConsoleMessage -> 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 ~ ResolveConsoleMessageMethod t ConsoleMessage, O.OverloadedMethod info ConsoleMessage p, R.HasField t ConsoleMessage p) => R.HasField t ConsoleMessage p where
    getField = O.overloadedMethod @info

#endif

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

#endif