{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
-- 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(..)                      ,
    noConsoleMessage                        ,


 -- * Methods
-- ** Overloaded methods #method:Overloaded methods#

#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.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.GI.Base.Signals as B.Signals
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 {-# SOURCE #-} qualified GI.WebKit2WebExtension.Enums as WebKit2WebExtension.Enums

-- | Memory-managed wrapper type.
newtype ConsoleMessage = ConsoleMessage (ManagedPtr ConsoleMessage)
    deriving (ConsoleMessage -> ConsoleMessage -> Bool
(ConsoleMessage -> ConsoleMessage -> Bool)
-> (ConsoleMessage -> ConsoleMessage -> Bool) -> Eq ConsoleMessage
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ConsoleMessage -> ConsoleMessage -> Bool
$c/= :: ConsoleMessage -> ConsoleMessage -> Bool
== :: ConsoleMessage -> ConsoleMessage -> Bool
$c== :: ConsoleMessage -> ConsoleMessage -> Bool
Eq)
foreign import ccall "webkit_console_message_get_type" c_webkit_console_message_get_type :: 
    IO GType

instance BoxedObject ConsoleMessage where
    boxedType :: ConsoleMessage -> IO GType
boxedType _ = IO GType
c_webkit_console_message_get_type

-- | Convert 'ConsoleMessage' to and from 'Data.GI.Base.GValue.GValue' with 'Data.GI.Base.GValue.toGValue' and 'Data.GI.Base.GValue.fromGValue'.
instance B.GValue.IsGValue ConsoleMessage where
    toGValue :: ConsoleMessage -> IO GValue
toGValue o :: ConsoleMessage
o = do
        GType
gtype <- IO GType
c_webkit_console_message_get_type
        ConsoleMessage -> (Ptr ConsoleMessage -> IO GValue) -> IO GValue
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr ConsoleMessage
o (GType
-> (GValue -> Ptr ConsoleMessage -> IO ())
-> Ptr ConsoleMessage
-> IO GValue
forall a. GType -> (GValue -> a -> IO ()) -> a -> IO GValue
B.GValue.buildGValue GType
gtype GValue -> Ptr ConsoleMessage -> IO ()
forall a. GValue -> Ptr a -> IO ()
B.GValue.set_boxed)
        
    fromGValue :: GValue -> IO ConsoleMessage
fromGValue gv :: GValue
gv = do
        Ptr ConsoleMessage
ptr <- GValue -> IO (Ptr ConsoleMessage)
forall b. GValue -> IO (Ptr b)
B.GValue.get_boxed GValue
gv :: IO (Ptr ConsoleMessage)
        (ManagedPtr ConsoleMessage -> ConsoleMessage)
-> Ptr ConsoleMessage -> IO ConsoleMessage
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
B.ManagedPtr.newBoxed ManagedPtr ConsoleMessage -> ConsoleMessage
ConsoleMessage Ptr ConsoleMessage
ptr
        
    

-- | A convenience alias for `Nothing` :: `Maybe` `ConsoleMessage`.
noConsoleMessage :: Maybe ConsoleMessage
noConsoleMessage :: Maybe ConsoleMessage
noConsoleMessage = Maybe ConsoleMessage
forall a. Maybe a
Nothing


#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList ConsoleMessage
type instance O.AttributeList ConsoleMessage = ConsoleMessageAttributeList
type ConsoleMessageAttributeList = ('[ ] :: [(Symbol, *)])
#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)

-- | 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 :: ConsoleMessage -> m ConsoleMessage
consoleMessageCopy consoleMessage :: ConsoleMessage
consoleMessage = IO ConsoleMessage -> m ConsoleMessage
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 "consoleMessageCopy" Ptr ConsoleMessage
result
    ConsoleMessage
result' <- ((ManagedPtr ConsoleMessage -> ConsoleMessage)
-> Ptr ConsoleMessage -> IO ConsoleMessage
forall a.
(HasCallStack, BoxedObject 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 (m :: * -> *) a. Monad m => a -> m a
return ConsoleMessage
result'

#if defined(ENABLE_OVERLOADING)
data ConsoleMessageCopyMethodInfo
instance (signature ~ (m ConsoleMessage), MonadIO m) => O.MethodInfo ConsoleMessageCopyMethodInfo ConsoleMessage signature where
    overloadedMethod = 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 ()

-- | 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 :: ConsoleMessage -> m ()
consoleMessageFree consoleMessage :: ConsoleMessage
consoleMessage = IO () -> m ()
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 (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data ConsoleMessageFreeMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo ConsoleMessageFreeMethodInfo ConsoleMessage signature where
    overloadedMethod = 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

-- | 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 :: ConsoleMessage -> m ConsoleMessageLevel
consoleMessageGetLevel consoleMessage :: ConsoleMessage
consoleMessage = IO ConsoleMessageLevel -> m ConsoleMessageLevel
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 (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.MethodInfo ConsoleMessageGetLevelMethodInfo ConsoleMessage signature where
    overloadedMethod = 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

-- | 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 :: ConsoleMessage -> m Word32
consoleMessageGetLine consoleMessage :: ConsoleMessage
consoleMessage = IO Word32 -> m Word32
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 (m :: * -> *) a. Monad m => a -> m a
return Word32
result

#if defined(ENABLE_OVERLOADING)
data ConsoleMessageGetLineMethodInfo
instance (signature ~ (m Word32), MonadIO m) => O.MethodInfo ConsoleMessageGetLineMethodInfo ConsoleMessage signature where
    overloadedMethod = 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

-- | 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 :: ConsoleMessage -> m ConsoleMessageSource
consoleMessageGetSource consoleMessage :: ConsoleMessage
consoleMessage = IO ConsoleMessageSource -> m ConsoleMessageSource
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 (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.MethodInfo ConsoleMessageGetSourceMethodInfo ConsoleMessage signature where
    overloadedMethod = 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

-- | 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 :: ConsoleMessage -> m Text
consoleMessageGetSourceId consoleMessage :: ConsoleMessage
consoleMessage = IO Text -> m Text
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 "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 (m :: * -> *) a. Monad m => a -> m a
return Text
result'

#if defined(ENABLE_OVERLOADING)
data ConsoleMessageGetSourceIdMethodInfo
instance (signature ~ (m T.Text), MonadIO m) => O.MethodInfo ConsoleMessageGetSourceIdMethodInfo ConsoleMessage signature where
    overloadedMethod = 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

-- | 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 :: ConsoleMessage -> m Text
consoleMessageGetText consoleMessage :: ConsoleMessage
consoleMessage = IO Text -> m Text
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 "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 (m :: * -> *) a. Monad m => a -> m a
return Text
result'

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

#endif

#if defined(ENABLE_OVERLOADING)
type family ResolveConsoleMessageMethod (t :: Symbol) (o :: *) :: * 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.MethodInfo 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

#endif