-- | Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria

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

module GI.Gio.Enums
    ( 

 -- * Enumerations
-- ** BusType #enum:BusType#

    BusType(..)                             ,


-- ** ConverterResult #enum:ConverterResult#

    ConverterResult(..)                     ,


-- ** CredentialsType #enum:CredentialsType#

    CredentialsType(..)                     ,


-- ** DBusError #enum:DBusError#

    DBusError(..)                           ,
    catchDBusError                          ,
    handleDBusError                         ,


-- ** DBusMessageByteOrder #enum:DBusMessageByteOrder#

    DBusMessageByteOrder(..)                ,


-- ** DBusMessageHeaderField #enum:DBusMessageHeaderField#

    DBusMessageHeaderField(..)              ,


-- ** DBusMessageType #enum:DBusMessageType#

    DBusMessageType(..)                     ,


-- ** DataStreamByteOrder #enum:DataStreamByteOrder#

    DataStreamByteOrder(..)                 ,


-- ** DataStreamNewlineType #enum:DataStreamNewlineType#

    DataStreamNewlineType(..)               ,


-- ** DriveStartStopType #enum:DriveStartStopType#

    DriveStartStopType(..)                  ,


-- ** EmblemOrigin #enum:EmblemOrigin#

    EmblemOrigin(..)                        ,


-- ** FileAttributeStatus #enum:FileAttributeStatus#

    FileAttributeStatus(..)                 ,


-- ** FileAttributeType #enum:FileAttributeType#

    FileAttributeType(..)                   ,


-- ** FileMonitorEvent #enum:FileMonitorEvent#

    FileMonitorEvent(..)                    ,


-- ** FileType #enum:FileType#

    FileType(..)                            ,


-- ** FilesystemPreviewType #enum:FilesystemPreviewType#

    FilesystemPreviewType(..)               ,


-- ** IOErrorEnum #enum:IOErrorEnum#

    IOErrorEnum(..)                         ,
    catchIOErrorEnum                        ,
    handleIOErrorEnum                       ,


-- ** IOModuleScopeFlags #enum:IOModuleScopeFlags#

    IOModuleScopeFlags(..)                  ,


-- ** MemoryMonitorWarningLevel #enum:MemoryMonitorWarningLevel#

    MemoryMonitorWarningLevel(..)           ,


-- ** MountOperationResult #enum:MountOperationResult#

    MountOperationResult(..)                ,


-- ** NetworkConnectivity #enum:NetworkConnectivity#

    NetworkConnectivity(..)                 ,


-- ** NotificationPriority #enum:NotificationPriority#

    NotificationPriority(..)                ,


-- ** PasswordSave #enum:PasswordSave#

    PasswordSave(..)                        ,


-- ** PollableReturn #enum:PollableReturn#

    PollableReturn(..)                      ,


-- ** ResolverError #enum:ResolverError#

    ResolverError(..)                       ,
    catchResolverError                      ,
    handleResolverError                     ,


-- ** ResolverRecordType #enum:ResolverRecordType#

    ResolverRecordType(..)                  ,


-- ** ResourceError #enum:ResourceError#

    ResourceError(..)                       ,
    catchResourceError                      ,
    handleResourceError                     ,


-- ** SocketClientEvent #enum:SocketClientEvent#

    SocketClientEvent(..)                   ,


-- ** SocketFamily #enum:SocketFamily#

    SocketFamily(..)                        ,


-- ** SocketListenerEvent #enum:SocketListenerEvent#

    SocketListenerEvent(..)                 ,


-- ** SocketProtocol #enum:SocketProtocol#

    SocketProtocol(..)                      ,


-- ** SocketType #enum:SocketType#

    SocketType(..)                          ,


-- ** TlsAuthenticationMode #enum:TlsAuthenticationMode#

    TlsAuthenticationMode(..)               ,


-- ** TlsCertificateRequestFlags #enum:TlsCertificateRequestFlags#

    TlsCertificateRequestFlags(..)          ,


-- ** TlsDatabaseLookupFlags #enum:TlsDatabaseLookupFlags#

    TlsDatabaseLookupFlags(..)              ,


-- ** TlsError #enum:TlsError#

    TlsError(..)                            ,
    catchTlsError                           ,
    handleTlsError                          ,


-- ** TlsInteractionResult #enum:TlsInteractionResult#

    TlsInteractionResult(..)                ,


-- ** TlsRehandshakeMode #enum:TlsRehandshakeMode#

    TlsRehandshakeMode(..)                  ,


-- ** UnixSocketAddressType #enum:UnixSocketAddressType#

    UnixSocketAddressType(..)               ,


-- ** ZlibCompressorFormat #enum:ZlibCompressorFormat#

    ZlibCompressorFormat(..)                ,




    ) 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.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 Control.Monad.IO.Class as MIO
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


-- Enum ZlibCompressorFormat
-- | Used to select the type of data format to use for t'GI.Gio.Objects.ZlibDecompressor.ZlibDecompressor'
-- and t'GI.Gio.Objects.ZlibCompressor.ZlibCompressor'.
-- 
-- /Since: 2.24/
data ZlibCompressorFormat = 
      ZlibCompressorFormatZlib
    -- ^ deflate compression with zlib header
    | ZlibCompressorFormatGzip
    -- ^ gzip file format
    | ZlibCompressorFormatRaw
    -- ^ deflate compression with no header
    | AnotherZlibCompressorFormat Int
    -- ^ Catch-all for unknown values
    deriving (Int -> ZlibCompressorFormat -> ShowS
[ZlibCompressorFormat] -> ShowS
ZlibCompressorFormat -> String
(Int -> ZlibCompressorFormat -> ShowS)
-> (ZlibCompressorFormat -> String)
-> ([ZlibCompressorFormat] -> ShowS)
-> Show ZlibCompressorFormat
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ZlibCompressorFormat] -> ShowS
$cshowList :: [ZlibCompressorFormat] -> ShowS
show :: ZlibCompressorFormat -> String
$cshow :: ZlibCompressorFormat -> String
showsPrec :: Int -> ZlibCompressorFormat -> ShowS
$cshowsPrec :: Int -> ZlibCompressorFormat -> ShowS
Show, ZlibCompressorFormat -> ZlibCompressorFormat -> Bool
(ZlibCompressorFormat -> ZlibCompressorFormat -> Bool)
-> (ZlibCompressorFormat -> ZlibCompressorFormat -> Bool)
-> Eq ZlibCompressorFormat
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ZlibCompressorFormat -> ZlibCompressorFormat -> Bool
$c/= :: ZlibCompressorFormat -> ZlibCompressorFormat -> Bool
== :: ZlibCompressorFormat -> ZlibCompressorFormat -> Bool
$c== :: ZlibCompressorFormat -> ZlibCompressorFormat -> Bool
Eq)

instance P.Enum ZlibCompressorFormat where
    fromEnum :: ZlibCompressorFormat -> Int
fromEnum ZlibCompressorFormat
ZlibCompressorFormatZlib = Int
0
    fromEnum ZlibCompressorFormat
ZlibCompressorFormatGzip = Int
1
    fromEnum ZlibCompressorFormat
ZlibCompressorFormatRaw = Int
2
    fromEnum (AnotherZlibCompressorFormat Int
k) = Int
k

    toEnum :: Int -> ZlibCompressorFormat
toEnum Int
0 = ZlibCompressorFormat
ZlibCompressorFormatZlib
    toEnum Int
1 = ZlibCompressorFormat
ZlibCompressorFormatGzip
    toEnum Int
2 = ZlibCompressorFormat
ZlibCompressorFormatRaw
    toEnum Int
k = Int -> ZlibCompressorFormat
AnotherZlibCompressorFormat Int
k

instance P.Ord ZlibCompressorFormat where
    compare :: ZlibCompressorFormat -> ZlibCompressorFormat -> Ordering
compare ZlibCompressorFormat
a ZlibCompressorFormat
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (ZlibCompressorFormat -> Int
forall a. Enum a => a -> Int
P.fromEnum ZlibCompressorFormat
a) (ZlibCompressorFormat -> Int
forall a. Enum a => a -> Int
P.fromEnum ZlibCompressorFormat
b)

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

foreign import ccall "g_zlib_compressor_format_get_type" c_g_zlib_compressor_format_get_type :: 
    IO GType

instance B.Types.TypedObject ZlibCompressorFormat where
    glibType :: IO GType
glibType = IO GType
c_g_zlib_compressor_format_get_type

instance B.Types.BoxedEnum ZlibCompressorFormat

-- Enum UnixSocketAddressType
-- | The type of name used by a t'GI.Gio.Objects.UnixSocketAddress.UnixSocketAddress'.
-- 'GI.Gio.Enums.UnixSocketAddressTypePath' indicates a traditional unix domain
-- socket bound to a filesystem path. 'GI.Gio.Enums.UnixSocketAddressTypeAnonymous'
-- indicates a socket not bound to any name (eg, a client-side socket,
-- or a socket created with @/socketpair()/@).
-- 
-- For abstract sockets, there are two incompatible ways of naming
-- them; the man pages suggest using the entire @struct sockaddr_un@
-- as the name, padding the unused parts of the @/sun_path/@ field with
-- zeroes; this corresponds to 'GI.Gio.Enums.UnixSocketAddressTypeAbstractPadded'.
-- However, many programs instead just use a portion of @/sun_path/@, and
-- pass an appropriate smaller length to @/bind()/@ or @/connect()/@. This is
-- 'GI.Gio.Enums.UnixSocketAddressTypeAbstract'.
-- 
-- /Since: 2.26/
data UnixSocketAddressType = 
      UnixSocketAddressTypeInvalid
    -- ^ invalid
    | UnixSocketAddressTypeAnonymous
    -- ^ anonymous
    | UnixSocketAddressTypePath
    -- ^ a filesystem path
    | UnixSocketAddressTypeAbstract
    -- ^ an abstract name
    | UnixSocketAddressTypeAbstractPadded
    -- ^ an abstract name, 0-padded
    --   to the full length of a unix socket name
    | AnotherUnixSocketAddressType Int
    -- ^ Catch-all for unknown values
    deriving (Int -> UnixSocketAddressType -> ShowS
[UnixSocketAddressType] -> ShowS
UnixSocketAddressType -> String
(Int -> UnixSocketAddressType -> ShowS)
-> (UnixSocketAddressType -> String)
-> ([UnixSocketAddressType] -> ShowS)
-> Show UnixSocketAddressType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UnixSocketAddressType] -> ShowS
$cshowList :: [UnixSocketAddressType] -> ShowS
show :: UnixSocketAddressType -> String
$cshow :: UnixSocketAddressType -> String
showsPrec :: Int -> UnixSocketAddressType -> ShowS
$cshowsPrec :: Int -> UnixSocketAddressType -> ShowS
Show, UnixSocketAddressType -> UnixSocketAddressType -> Bool
(UnixSocketAddressType -> UnixSocketAddressType -> Bool)
-> (UnixSocketAddressType -> UnixSocketAddressType -> Bool)
-> Eq UnixSocketAddressType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UnixSocketAddressType -> UnixSocketAddressType -> Bool
$c/= :: UnixSocketAddressType -> UnixSocketAddressType -> Bool
== :: UnixSocketAddressType -> UnixSocketAddressType -> Bool
$c== :: UnixSocketAddressType -> UnixSocketAddressType -> Bool
Eq)

instance P.Enum UnixSocketAddressType where
    fromEnum :: UnixSocketAddressType -> Int
fromEnum UnixSocketAddressType
UnixSocketAddressTypeInvalid = Int
0
    fromEnum UnixSocketAddressType
UnixSocketAddressTypeAnonymous = Int
1
    fromEnum UnixSocketAddressType
UnixSocketAddressTypePath = Int
2
    fromEnum UnixSocketAddressType
UnixSocketAddressTypeAbstract = Int
3
    fromEnum UnixSocketAddressType
UnixSocketAddressTypeAbstractPadded = Int
4
    fromEnum (AnotherUnixSocketAddressType Int
k) = Int
k

    toEnum :: Int -> UnixSocketAddressType
toEnum Int
0 = UnixSocketAddressType
UnixSocketAddressTypeInvalid
    toEnum Int
1 = UnixSocketAddressType
UnixSocketAddressTypeAnonymous
    toEnum Int
2 = UnixSocketAddressType
UnixSocketAddressTypePath
    toEnum Int
3 = UnixSocketAddressType
UnixSocketAddressTypeAbstract
    toEnum Int
4 = UnixSocketAddressType
UnixSocketAddressTypeAbstractPadded
    toEnum Int
k = Int -> UnixSocketAddressType
AnotherUnixSocketAddressType Int
k

instance P.Ord UnixSocketAddressType where
    compare :: UnixSocketAddressType -> UnixSocketAddressType -> Ordering
compare UnixSocketAddressType
a UnixSocketAddressType
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (UnixSocketAddressType -> Int
forall a. Enum a => a -> Int
P.fromEnum UnixSocketAddressType
a) (UnixSocketAddressType -> Int
forall a. Enum a => a -> Int
P.fromEnum UnixSocketAddressType
b)

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

foreign import ccall "g_unix_socket_address_type_get_type" c_g_unix_socket_address_type_get_type :: 
    IO GType

instance B.Types.TypedObject UnixSocketAddressType where
    glibType :: IO GType
glibType = IO GType
c_g_unix_socket_address_type_get_type

instance B.Types.BoxedEnum UnixSocketAddressType

-- Enum TlsRehandshakeMode
{-# DEPRECATED TlsRehandshakeMode ["(Since version 2.60.)","Changing the rehandshake mode is no longer","  required for compatibility. Also, rehandshaking has been removed","  from the TLS protocol in TLS 1.3."] #-}
-- | When to allow rehandshaking. See
-- 'GI.Gio.Objects.TlsConnection.tlsConnectionSetRehandshakeMode'.
-- 
-- /Since: 2.28/
data TlsRehandshakeMode = 
      TlsRehandshakeModeNever
    -- ^ Never allow rehandshaking
    | TlsRehandshakeModeSafely
    -- ^ Allow safe rehandshaking only
    | TlsRehandshakeModeUnsafely
    -- ^ Allow unsafe rehandshaking
    | AnotherTlsRehandshakeMode Int
    -- ^ Catch-all for unknown values
    deriving (Int -> TlsRehandshakeMode -> ShowS
[TlsRehandshakeMode] -> ShowS
TlsRehandshakeMode -> String
(Int -> TlsRehandshakeMode -> ShowS)
-> (TlsRehandshakeMode -> String)
-> ([TlsRehandshakeMode] -> ShowS)
-> Show TlsRehandshakeMode
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TlsRehandshakeMode] -> ShowS
$cshowList :: [TlsRehandshakeMode] -> ShowS
show :: TlsRehandshakeMode -> String
$cshow :: TlsRehandshakeMode -> String
showsPrec :: Int -> TlsRehandshakeMode -> ShowS
$cshowsPrec :: Int -> TlsRehandshakeMode -> ShowS
Show, TlsRehandshakeMode -> TlsRehandshakeMode -> Bool
(TlsRehandshakeMode -> TlsRehandshakeMode -> Bool)
-> (TlsRehandshakeMode -> TlsRehandshakeMode -> Bool)
-> Eq TlsRehandshakeMode
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TlsRehandshakeMode -> TlsRehandshakeMode -> Bool
$c/= :: TlsRehandshakeMode -> TlsRehandshakeMode -> Bool
== :: TlsRehandshakeMode -> TlsRehandshakeMode -> Bool
$c== :: TlsRehandshakeMode -> TlsRehandshakeMode -> Bool
Eq)

instance P.Enum TlsRehandshakeMode where
    fromEnum :: TlsRehandshakeMode -> Int
fromEnum TlsRehandshakeMode
TlsRehandshakeModeNever = Int
0
    fromEnum TlsRehandshakeMode
TlsRehandshakeModeSafely = Int
1
    fromEnum TlsRehandshakeMode
TlsRehandshakeModeUnsafely = Int
2
    fromEnum (AnotherTlsRehandshakeMode Int
k) = Int
k

    toEnum :: Int -> TlsRehandshakeMode
toEnum Int
0 = TlsRehandshakeMode
TlsRehandshakeModeNever
    toEnum Int
1 = TlsRehandshakeMode
TlsRehandshakeModeSafely
    toEnum Int
2 = TlsRehandshakeMode
TlsRehandshakeModeUnsafely
    toEnum Int
k = Int -> TlsRehandshakeMode
AnotherTlsRehandshakeMode Int
k

instance P.Ord TlsRehandshakeMode where
    compare :: TlsRehandshakeMode -> TlsRehandshakeMode -> Ordering
compare TlsRehandshakeMode
a TlsRehandshakeMode
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (TlsRehandshakeMode -> Int
forall a. Enum a => a -> Int
P.fromEnum TlsRehandshakeMode
a) (TlsRehandshakeMode -> Int
forall a. Enum a => a -> Int
P.fromEnum TlsRehandshakeMode
b)

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

foreign import ccall "g_tls_rehandshake_mode_get_type" c_g_tls_rehandshake_mode_get_type :: 
    IO GType

instance B.Types.TypedObject TlsRehandshakeMode where
    glibType :: IO GType
glibType = IO GType
c_g_tls_rehandshake_mode_get_type

instance B.Types.BoxedEnum TlsRehandshakeMode

-- Enum TlsInteractionResult
-- | t'GI.Gio.Enums.TlsInteractionResult' is returned by various functions in t'GI.Gio.Objects.TlsInteraction.TlsInteraction'
-- when finishing an interaction request.
-- 
-- /Since: 2.30/
data TlsInteractionResult = 
      TlsInteractionResultUnhandled
    -- ^ The interaction was unhandled (i.e. not
    --     implemented).
    | TlsInteractionResultHandled
    -- ^ The interaction completed, and resulting data
    --     is available.
    | TlsInteractionResultFailed
    -- ^ The interaction has failed, or was cancelled.
    --     and the operation should be aborted.
    | AnotherTlsInteractionResult Int
    -- ^ Catch-all for unknown values
    deriving (Int -> TlsInteractionResult -> ShowS
[TlsInteractionResult] -> ShowS
TlsInteractionResult -> String
(Int -> TlsInteractionResult -> ShowS)
-> (TlsInteractionResult -> String)
-> ([TlsInteractionResult] -> ShowS)
-> Show TlsInteractionResult
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TlsInteractionResult] -> ShowS
$cshowList :: [TlsInteractionResult] -> ShowS
show :: TlsInteractionResult -> String
$cshow :: TlsInteractionResult -> String
showsPrec :: Int -> TlsInteractionResult -> ShowS
$cshowsPrec :: Int -> TlsInteractionResult -> ShowS
Show, TlsInteractionResult -> TlsInteractionResult -> Bool
(TlsInteractionResult -> TlsInteractionResult -> Bool)
-> (TlsInteractionResult -> TlsInteractionResult -> Bool)
-> Eq TlsInteractionResult
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TlsInteractionResult -> TlsInteractionResult -> Bool
$c/= :: TlsInteractionResult -> TlsInteractionResult -> Bool
== :: TlsInteractionResult -> TlsInteractionResult -> Bool
$c== :: TlsInteractionResult -> TlsInteractionResult -> Bool
Eq)

instance P.Enum TlsInteractionResult where
    fromEnum :: TlsInteractionResult -> Int
fromEnum TlsInteractionResult
TlsInteractionResultUnhandled = Int
0
    fromEnum TlsInteractionResult
TlsInteractionResultHandled = Int
1
    fromEnum TlsInteractionResult
TlsInteractionResultFailed = Int
2
    fromEnum (AnotherTlsInteractionResult Int
k) = Int
k

    toEnum :: Int -> TlsInteractionResult
toEnum Int
0 = TlsInteractionResult
TlsInteractionResultUnhandled
    toEnum Int
1 = TlsInteractionResult
TlsInteractionResultHandled
    toEnum Int
2 = TlsInteractionResult
TlsInteractionResultFailed
    toEnum Int
k = Int -> TlsInteractionResult
AnotherTlsInteractionResult Int
k

instance P.Ord TlsInteractionResult where
    compare :: TlsInteractionResult -> TlsInteractionResult -> Ordering
compare TlsInteractionResult
a TlsInteractionResult
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (TlsInteractionResult -> Int
forall a. Enum a => a -> Int
P.fromEnum TlsInteractionResult
a) (TlsInteractionResult -> Int
forall a. Enum a => a -> Int
P.fromEnum TlsInteractionResult
b)

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

foreign import ccall "g_tls_interaction_result_get_type" c_g_tls_interaction_result_get_type :: 
    IO GType

instance B.Types.TypedObject TlsInteractionResult where
    glibType :: IO GType
glibType = IO GType
c_g_tls_interaction_result_get_type

instance B.Types.BoxedEnum TlsInteractionResult

-- Enum TlsError
-- | An error code used with @/G_TLS_ERROR/@ in a t'GError' returned from a
-- TLS-related routine.
-- 
-- /Since: 2.28/
data TlsError = 
      TlsErrorUnavailable
    -- ^ No TLS provider is available
    | TlsErrorMisc
    -- ^ Miscellaneous TLS error
    | TlsErrorBadCertificate
    -- ^ The certificate presented could not
    --   be parsed or failed validation.
    | TlsErrorNotTls
    -- ^ The TLS handshake failed because the
    --   peer does not seem to be a TLS server.
    | TlsErrorHandshake
    -- ^ The TLS handshake failed because the
    --   peer\'s certificate was not acceptable.
    | TlsErrorCertificateRequired
    -- ^ The TLS handshake failed because
    --   the server requested a client-side certificate, but none was
    --   provided. See 'GI.Gio.Objects.TlsConnection.tlsConnectionSetCertificate'.
    | TlsErrorEof
    -- ^ The TLS connection was closed without proper
    --   notice, which may indicate an attack. See
    --   'GI.Gio.Objects.TlsConnection.tlsConnectionSetRequireCloseNotify'.
    | TlsErrorInappropriateFallback
    -- ^ The TLS handshake failed
    --   because the client sent the fallback SCSV, indicating a protocol
    --   downgrade attack. Since: 2.60
    | AnotherTlsError Int
    -- ^ Catch-all for unknown values
    deriving (Int -> TlsError -> ShowS
[TlsError] -> ShowS
TlsError -> String
(Int -> TlsError -> ShowS)
-> (TlsError -> String) -> ([TlsError] -> ShowS) -> Show TlsError
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TlsError] -> ShowS
$cshowList :: [TlsError] -> ShowS
show :: TlsError -> String
$cshow :: TlsError -> String
showsPrec :: Int -> TlsError -> ShowS
$cshowsPrec :: Int -> TlsError -> ShowS
Show, TlsError -> TlsError -> Bool
(TlsError -> TlsError -> Bool)
-> (TlsError -> TlsError -> Bool) -> Eq TlsError
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TlsError -> TlsError -> Bool
$c/= :: TlsError -> TlsError -> Bool
== :: TlsError -> TlsError -> Bool
$c== :: TlsError -> TlsError -> Bool
Eq)

instance P.Enum TlsError where
    fromEnum :: TlsError -> Int
fromEnum TlsError
TlsErrorUnavailable = Int
0
    fromEnum TlsError
TlsErrorMisc = Int
1
    fromEnum TlsError
TlsErrorBadCertificate = Int
2
    fromEnum TlsError
TlsErrorNotTls = Int
3
    fromEnum TlsError
TlsErrorHandshake = Int
4
    fromEnum TlsError
TlsErrorCertificateRequired = Int
5
    fromEnum TlsError
TlsErrorEof = Int
6
    fromEnum TlsError
TlsErrorInappropriateFallback = Int
7
    fromEnum (AnotherTlsError Int
k) = Int
k

    toEnum :: Int -> TlsError
toEnum Int
0 = TlsError
TlsErrorUnavailable
    toEnum Int
1 = TlsError
TlsErrorMisc
    toEnum Int
2 = TlsError
TlsErrorBadCertificate
    toEnum Int
3 = TlsError
TlsErrorNotTls
    toEnum Int
4 = TlsError
TlsErrorHandshake
    toEnum Int
5 = TlsError
TlsErrorCertificateRequired
    toEnum Int
6 = TlsError
TlsErrorEof
    toEnum Int
7 = TlsError
TlsErrorInappropriateFallback
    toEnum Int
k = Int -> TlsError
AnotherTlsError Int
k

instance P.Ord TlsError where
    compare :: TlsError -> TlsError -> Ordering
compare TlsError
a TlsError
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (TlsError -> Int
forall a. Enum a => a -> Int
P.fromEnum TlsError
a) (TlsError -> Int
forall a. Enum a => a -> Int
P.fromEnum TlsError
b)

instance GErrorClass TlsError where
    gerrorClassDomain :: TlsError -> Text
gerrorClassDomain TlsError
_ = Text
"g-tls-error-quark"

-- | Catch exceptions of type `TlsError`. This is a specialized version of `Data.GI.Base.GError.catchGErrorJustDomain`.
catchTlsError ::
    IO a ->
    (TlsError -> GErrorMessage -> IO a) ->
    IO a
catchTlsError :: IO a -> (TlsError -> Text -> IO a) -> IO a
catchTlsError = IO a -> (TlsError -> Text -> IO a) -> IO a
forall err a.
GErrorClass err =>
IO a -> (err -> Text -> IO a) -> IO a
catchGErrorJustDomain

-- | Handle exceptions of type `TlsError`. This is a specialized version of `Data.GI.Base.GError.handleGErrorJustDomain`.
handleTlsError ::
    (TlsError -> GErrorMessage -> IO a) ->
    IO a ->
    IO a
handleTlsError :: (TlsError -> Text -> IO a) -> IO a -> IO a
handleTlsError = (TlsError -> Text -> IO a) -> IO a -> IO a
forall err a.
GErrorClass err =>
(err -> Text -> IO a) -> IO a -> IO a
handleGErrorJustDomain

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

foreign import ccall "g_tls_error_get_type" c_g_tls_error_get_type :: 
    IO GType

instance B.Types.TypedObject TlsError where
    glibType :: IO GType
glibType = IO GType
c_g_tls_error_get_type

instance B.Types.BoxedEnum TlsError

-- Enum TlsDatabaseLookupFlags
-- | Flags for 'GI.Gio.Objects.TlsDatabase.tlsDatabaseLookupCertificateForHandle',
-- 'GI.Gio.Objects.TlsDatabase.tlsDatabaseLookupCertificateIssuer',
-- and 'GI.Gio.Objects.TlsDatabase.tlsDatabaseLookupCertificatesIssuedBy'.
-- 
-- /Since: 2.30/
data TlsDatabaseLookupFlags = 
      TlsDatabaseLookupFlagsNone
    -- ^ No lookup flags
    | TlsDatabaseLookupFlagsKeypair
    -- ^ Restrict lookup to certificates that have
    --     a private key.
    | AnotherTlsDatabaseLookupFlags Int
    -- ^ Catch-all for unknown values
    deriving (Int -> TlsDatabaseLookupFlags -> ShowS
[TlsDatabaseLookupFlags] -> ShowS
TlsDatabaseLookupFlags -> String
(Int -> TlsDatabaseLookupFlags -> ShowS)
-> (TlsDatabaseLookupFlags -> String)
-> ([TlsDatabaseLookupFlags] -> ShowS)
-> Show TlsDatabaseLookupFlags
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TlsDatabaseLookupFlags] -> ShowS
$cshowList :: [TlsDatabaseLookupFlags] -> ShowS
show :: TlsDatabaseLookupFlags -> String
$cshow :: TlsDatabaseLookupFlags -> String
showsPrec :: Int -> TlsDatabaseLookupFlags -> ShowS
$cshowsPrec :: Int -> TlsDatabaseLookupFlags -> ShowS
Show, TlsDatabaseLookupFlags -> TlsDatabaseLookupFlags -> Bool
(TlsDatabaseLookupFlags -> TlsDatabaseLookupFlags -> Bool)
-> (TlsDatabaseLookupFlags -> TlsDatabaseLookupFlags -> Bool)
-> Eq TlsDatabaseLookupFlags
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TlsDatabaseLookupFlags -> TlsDatabaseLookupFlags -> Bool
$c/= :: TlsDatabaseLookupFlags -> TlsDatabaseLookupFlags -> Bool
== :: TlsDatabaseLookupFlags -> TlsDatabaseLookupFlags -> Bool
$c== :: TlsDatabaseLookupFlags -> TlsDatabaseLookupFlags -> Bool
Eq)

instance P.Enum TlsDatabaseLookupFlags where
    fromEnum :: TlsDatabaseLookupFlags -> Int
fromEnum TlsDatabaseLookupFlags
TlsDatabaseLookupFlagsNone = Int
0
    fromEnum TlsDatabaseLookupFlags
TlsDatabaseLookupFlagsKeypair = Int
1
    fromEnum (AnotherTlsDatabaseLookupFlags Int
k) = Int
k

    toEnum :: Int -> TlsDatabaseLookupFlags
toEnum Int
0 = TlsDatabaseLookupFlags
TlsDatabaseLookupFlagsNone
    toEnum Int
1 = TlsDatabaseLookupFlags
TlsDatabaseLookupFlagsKeypair
    toEnum Int
k = Int -> TlsDatabaseLookupFlags
AnotherTlsDatabaseLookupFlags Int
k

instance P.Ord TlsDatabaseLookupFlags where
    compare :: TlsDatabaseLookupFlags -> TlsDatabaseLookupFlags -> Ordering
compare TlsDatabaseLookupFlags
a TlsDatabaseLookupFlags
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (TlsDatabaseLookupFlags -> Int
forall a. Enum a => a -> Int
P.fromEnum TlsDatabaseLookupFlags
a) (TlsDatabaseLookupFlags -> Int
forall a. Enum a => a -> Int
P.fromEnum TlsDatabaseLookupFlags
b)

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

foreign import ccall "g_tls_database_lookup_flags_get_type" c_g_tls_database_lookup_flags_get_type :: 
    IO GType

instance B.Types.TypedObject TlsDatabaseLookupFlags where
    glibType :: IO GType
glibType = IO GType
c_g_tls_database_lookup_flags_get_type

instance B.Types.BoxedEnum TlsDatabaseLookupFlags

-- Enum TlsCertificateRequestFlags
-- | Flags for 'GI.Gio.Objects.TlsInteraction.tlsInteractionRequestCertificate',
-- 'GI.Gio.Objects.TlsInteraction.tlsInteractionRequestCertificateAsync', and
-- 'GI.Gio.Objects.TlsInteraction.tlsInteractionInvokeRequestCertificate'.
-- 
-- /Since: 2.40/
data TlsCertificateRequestFlags = 
      TlsCertificateRequestFlagsNone
    -- ^ No flags
    | AnotherTlsCertificateRequestFlags Int
    -- ^ Catch-all for unknown values
    deriving (Int -> TlsCertificateRequestFlags -> ShowS
[TlsCertificateRequestFlags] -> ShowS
TlsCertificateRequestFlags -> String
(Int -> TlsCertificateRequestFlags -> ShowS)
-> (TlsCertificateRequestFlags -> String)
-> ([TlsCertificateRequestFlags] -> ShowS)
-> Show TlsCertificateRequestFlags
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TlsCertificateRequestFlags] -> ShowS
$cshowList :: [TlsCertificateRequestFlags] -> ShowS
show :: TlsCertificateRequestFlags -> String
$cshow :: TlsCertificateRequestFlags -> String
showsPrec :: Int -> TlsCertificateRequestFlags -> ShowS
$cshowsPrec :: Int -> TlsCertificateRequestFlags -> ShowS
Show, TlsCertificateRequestFlags -> TlsCertificateRequestFlags -> Bool
(TlsCertificateRequestFlags -> TlsCertificateRequestFlags -> Bool)
-> (TlsCertificateRequestFlags
    -> TlsCertificateRequestFlags -> Bool)
-> Eq TlsCertificateRequestFlags
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TlsCertificateRequestFlags -> TlsCertificateRequestFlags -> Bool
$c/= :: TlsCertificateRequestFlags -> TlsCertificateRequestFlags -> Bool
== :: TlsCertificateRequestFlags -> TlsCertificateRequestFlags -> Bool
$c== :: TlsCertificateRequestFlags -> TlsCertificateRequestFlags -> Bool
Eq)

instance P.Enum TlsCertificateRequestFlags where
    fromEnum :: TlsCertificateRequestFlags -> Int
fromEnum TlsCertificateRequestFlags
TlsCertificateRequestFlagsNone = Int
0
    fromEnum (AnotherTlsCertificateRequestFlags Int
k) = Int
k

    toEnum :: Int -> TlsCertificateRequestFlags
toEnum Int
0 = TlsCertificateRequestFlags
TlsCertificateRequestFlagsNone
    toEnum Int
k = Int -> TlsCertificateRequestFlags
AnotherTlsCertificateRequestFlags Int
k

instance P.Ord TlsCertificateRequestFlags where
    compare :: TlsCertificateRequestFlags
-> TlsCertificateRequestFlags -> Ordering
compare TlsCertificateRequestFlags
a TlsCertificateRequestFlags
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (TlsCertificateRequestFlags -> Int
forall a. Enum a => a -> Int
P.fromEnum TlsCertificateRequestFlags
a) (TlsCertificateRequestFlags -> Int
forall a. Enum a => a -> Int
P.fromEnum TlsCertificateRequestFlags
b)

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

foreign import ccall "g_tls_certificate_request_flags_get_type" c_g_tls_certificate_request_flags_get_type :: 
    IO GType

instance B.Types.TypedObject TlsCertificateRequestFlags where
    glibType :: IO GType
glibType = IO GType
c_g_tls_certificate_request_flags_get_type

instance B.Types.BoxedEnum TlsCertificateRequestFlags

-- Enum TlsAuthenticationMode
-- | The client authentication mode for a t'GI.Gio.Interfaces.TlsServerConnection.TlsServerConnection'.
-- 
-- /Since: 2.28/
data TlsAuthenticationMode = 
      TlsAuthenticationModeNone
    -- ^ client authentication not required
    | TlsAuthenticationModeRequested
    -- ^ client authentication is requested
    | TlsAuthenticationModeRequired
    -- ^ client authentication is required
    | AnotherTlsAuthenticationMode Int
    -- ^ Catch-all for unknown values
    deriving (Int -> TlsAuthenticationMode -> ShowS
[TlsAuthenticationMode] -> ShowS
TlsAuthenticationMode -> String
(Int -> TlsAuthenticationMode -> ShowS)
-> (TlsAuthenticationMode -> String)
-> ([TlsAuthenticationMode] -> ShowS)
-> Show TlsAuthenticationMode
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TlsAuthenticationMode] -> ShowS
$cshowList :: [TlsAuthenticationMode] -> ShowS
show :: TlsAuthenticationMode -> String
$cshow :: TlsAuthenticationMode -> String
showsPrec :: Int -> TlsAuthenticationMode -> ShowS
$cshowsPrec :: Int -> TlsAuthenticationMode -> ShowS
Show, TlsAuthenticationMode -> TlsAuthenticationMode -> Bool
(TlsAuthenticationMode -> TlsAuthenticationMode -> Bool)
-> (TlsAuthenticationMode -> TlsAuthenticationMode -> Bool)
-> Eq TlsAuthenticationMode
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TlsAuthenticationMode -> TlsAuthenticationMode -> Bool
$c/= :: TlsAuthenticationMode -> TlsAuthenticationMode -> Bool
== :: TlsAuthenticationMode -> TlsAuthenticationMode -> Bool
$c== :: TlsAuthenticationMode -> TlsAuthenticationMode -> Bool
Eq)

instance P.Enum TlsAuthenticationMode where
    fromEnum :: TlsAuthenticationMode -> Int
fromEnum TlsAuthenticationMode
TlsAuthenticationModeNone = Int
0
    fromEnum TlsAuthenticationMode
TlsAuthenticationModeRequested = Int
1
    fromEnum TlsAuthenticationMode
TlsAuthenticationModeRequired = Int
2
    fromEnum (AnotherTlsAuthenticationMode Int
k) = Int
k

    toEnum :: Int -> TlsAuthenticationMode
toEnum Int
0 = TlsAuthenticationMode
TlsAuthenticationModeNone
    toEnum Int
1 = TlsAuthenticationMode
TlsAuthenticationModeRequested
    toEnum Int
2 = TlsAuthenticationMode
TlsAuthenticationModeRequired
    toEnum Int
k = Int -> TlsAuthenticationMode
AnotherTlsAuthenticationMode Int
k

instance P.Ord TlsAuthenticationMode where
    compare :: TlsAuthenticationMode -> TlsAuthenticationMode -> Ordering
compare TlsAuthenticationMode
a TlsAuthenticationMode
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (TlsAuthenticationMode -> Int
forall a. Enum a => a -> Int
P.fromEnum TlsAuthenticationMode
a) (TlsAuthenticationMode -> Int
forall a. Enum a => a -> Int
P.fromEnum TlsAuthenticationMode
b)

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

foreign import ccall "g_tls_authentication_mode_get_type" c_g_tls_authentication_mode_get_type :: 
    IO GType

instance B.Types.TypedObject TlsAuthenticationMode where
    glibType :: IO GType
glibType = IO GType
c_g_tls_authentication_mode_get_type

instance B.Types.BoxedEnum TlsAuthenticationMode

-- Enum SocketType
-- | Flags used when creating a t'GI.Gio.Objects.Socket.Socket'. Some protocols may not implement
-- all the socket types.
-- 
-- /Since: 2.22/
data SocketType = 
      SocketTypeInvalid
    -- ^ Type unknown or wrong
    | SocketTypeStream
    -- ^ Reliable connection-based byte streams (e.g. TCP).
    | SocketTypeDatagram
    -- ^ Connectionless, unreliable datagram passing.
    --     (e.g. UDP)
    | SocketTypeSeqpacket
    -- ^ Reliable connection-based passing of datagrams
    --     of fixed maximum length (e.g. SCTP).
    | AnotherSocketType Int
    -- ^ Catch-all for unknown values
    deriving (Int -> SocketType -> ShowS
[SocketType] -> ShowS
SocketType -> String
(Int -> SocketType -> ShowS)
-> (SocketType -> String)
-> ([SocketType] -> ShowS)
-> Show SocketType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SocketType] -> ShowS
$cshowList :: [SocketType] -> ShowS
show :: SocketType -> String
$cshow :: SocketType -> String
showsPrec :: Int -> SocketType -> ShowS
$cshowsPrec :: Int -> SocketType -> ShowS
Show, SocketType -> SocketType -> Bool
(SocketType -> SocketType -> Bool)
-> (SocketType -> SocketType -> Bool) -> Eq SocketType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SocketType -> SocketType -> Bool
$c/= :: SocketType -> SocketType -> Bool
== :: SocketType -> SocketType -> Bool
$c== :: SocketType -> SocketType -> Bool
Eq)

instance P.Enum SocketType where
    fromEnum :: SocketType -> Int
fromEnum SocketType
SocketTypeInvalid = Int
0
    fromEnum SocketType
SocketTypeStream = Int
1
    fromEnum SocketType
SocketTypeDatagram = Int
2
    fromEnum SocketType
SocketTypeSeqpacket = Int
3
    fromEnum (AnotherSocketType Int
k) = Int
k

    toEnum :: Int -> SocketType
toEnum Int
0 = SocketType
SocketTypeInvalid
    toEnum Int
1 = SocketType
SocketTypeStream
    toEnum Int
2 = SocketType
SocketTypeDatagram
    toEnum Int
3 = SocketType
SocketTypeSeqpacket
    toEnum Int
k = Int -> SocketType
AnotherSocketType Int
k

instance P.Ord SocketType where
    compare :: SocketType -> SocketType -> Ordering
compare SocketType
a SocketType
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (SocketType -> Int
forall a. Enum a => a -> Int
P.fromEnum SocketType
a) (SocketType -> Int
forall a. Enum a => a -> Int
P.fromEnum SocketType
b)

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

foreign import ccall "g_socket_type_get_type" c_g_socket_type_get_type :: 
    IO GType

instance B.Types.TypedObject SocketType where
    glibType :: IO GType
glibType = IO GType
c_g_socket_type_get_type

instance B.Types.BoxedEnum SocketType

-- Enum SocketProtocol
-- | A protocol identifier is specified when creating a t'GI.Gio.Objects.Socket.Socket', which is a
-- family\/type specific identifier, where 0 means the default protocol for
-- the particular family\/type.
-- 
-- This enum contains a set of commonly available and used protocols. You
-- can also pass any other identifiers handled by the platform in order to
-- use protocols not listed here.
-- 
-- /Since: 2.22/
data SocketProtocol = 
      SocketProtocolUnknown
    -- ^ The protocol type is unknown
    | SocketProtocolDefault
    -- ^ The default protocol for the family\/type
    | SocketProtocolTcp
    -- ^ TCP over IP
    | SocketProtocolUdp
    -- ^ UDP over IP
    | SocketProtocolSctp
    -- ^ SCTP over IP
    | AnotherSocketProtocol Int
    -- ^ Catch-all for unknown values
    deriving (Int -> SocketProtocol -> ShowS
[SocketProtocol] -> ShowS
SocketProtocol -> String
(Int -> SocketProtocol -> ShowS)
-> (SocketProtocol -> String)
-> ([SocketProtocol] -> ShowS)
-> Show SocketProtocol
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SocketProtocol] -> ShowS
$cshowList :: [SocketProtocol] -> ShowS
show :: SocketProtocol -> String
$cshow :: SocketProtocol -> String
showsPrec :: Int -> SocketProtocol -> ShowS
$cshowsPrec :: Int -> SocketProtocol -> ShowS
Show, SocketProtocol -> SocketProtocol -> Bool
(SocketProtocol -> SocketProtocol -> Bool)
-> (SocketProtocol -> SocketProtocol -> Bool) -> Eq SocketProtocol
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SocketProtocol -> SocketProtocol -> Bool
$c/= :: SocketProtocol -> SocketProtocol -> Bool
== :: SocketProtocol -> SocketProtocol -> Bool
$c== :: SocketProtocol -> SocketProtocol -> Bool
Eq)

instance P.Enum SocketProtocol where
    fromEnum :: SocketProtocol -> Int
fromEnum SocketProtocol
SocketProtocolUnknown = Int
-1
    fromEnum SocketProtocol
SocketProtocolDefault = Int
0
    fromEnum SocketProtocol
SocketProtocolTcp = Int
6
    fromEnum SocketProtocol
SocketProtocolUdp = Int
17
    fromEnum SocketProtocol
SocketProtocolSctp = Int
132
    fromEnum (AnotherSocketProtocol Int
k) = Int
k

    toEnum :: Int -> SocketProtocol
toEnum Int
-1 = SocketProtocol
SocketProtocolUnknown
    toEnum Int
0 = SocketProtocol
SocketProtocolDefault
    toEnum Int
6 = SocketProtocol
SocketProtocolTcp
    toEnum Int
17 = SocketProtocol
SocketProtocolUdp
    toEnum Int
132 = SocketProtocol
SocketProtocolSctp
    toEnum Int
k = Int -> SocketProtocol
AnotherSocketProtocol Int
k

instance P.Ord SocketProtocol where
    compare :: SocketProtocol -> SocketProtocol -> Ordering
compare SocketProtocol
a SocketProtocol
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (SocketProtocol -> Int
forall a. Enum a => a -> Int
P.fromEnum SocketProtocol
a) (SocketProtocol -> Int
forall a. Enum a => a -> Int
P.fromEnum SocketProtocol
b)

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

foreign import ccall "g_socket_protocol_get_type" c_g_socket_protocol_get_type :: 
    IO GType

instance B.Types.TypedObject SocketProtocol where
    glibType :: IO GType
glibType = IO GType
c_g_socket_protocol_get_type

instance B.Types.BoxedEnum SocketProtocol

-- Enum SocketListenerEvent
-- | Describes an event occurring on a t'GI.Gio.Objects.SocketListener.SocketListener'. See the
-- [event]("GI.Gio.Objects.SocketListener#g:signal:event") signal for more details.
-- 
-- Additional values may be added to this type in the future.
-- 
-- /Since: 2.46/
data SocketListenerEvent = 
      SocketListenerEventBinding
    -- ^ The listener is about to bind a socket.
    | SocketListenerEventBound
    -- ^ The listener has bound a socket.
    | SocketListenerEventListening
    -- ^ The listener is about to start
    --    listening on this socket.
    | SocketListenerEventListened
    -- ^ The listener is now listening on
    --   this socket.
    | AnotherSocketListenerEvent Int
    -- ^ Catch-all for unknown values
    deriving (Int -> SocketListenerEvent -> ShowS
[SocketListenerEvent] -> ShowS
SocketListenerEvent -> String
(Int -> SocketListenerEvent -> ShowS)
-> (SocketListenerEvent -> String)
-> ([SocketListenerEvent] -> ShowS)
-> Show SocketListenerEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SocketListenerEvent] -> ShowS
$cshowList :: [SocketListenerEvent] -> ShowS
show :: SocketListenerEvent -> String
$cshow :: SocketListenerEvent -> String
showsPrec :: Int -> SocketListenerEvent -> ShowS
$cshowsPrec :: Int -> SocketListenerEvent -> ShowS
Show, SocketListenerEvent -> SocketListenerEvent -> Bool
(SocketListenerEvent -> SocketListenerEvent -> Bool)
-> (SocketListenerEvent -> SocketListenerEvent -> Bool)
-> Eq SocketListenerEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SocketListenerEvent -> SocketListenerEvent -> Bool
$c/= :: SocketListenerEvent -> SocketListenerEvent -> Bool
== :: SocketListenerEvent -> SocketListenerEvent -> Bool
$c== :: SocketListenerEvent -> SocketListenerEvent -> Bool
Eq)

instance P.Enum SocketListenerEvent where
    fromEnum :: SocketListenerEvent -> Int
fromEnum SocketListenerEvent
SocketListenerEventBinding = Int
0
    fromEnum SocketListenerEvent
SocketListenerEventBound = Int
1
    fromEnum SocketListenerEvent
SocketListenerEventListening = Int
2
    fromEnum SocketListenerEvent
SocketListenerEventListened = Int
3
    fromEnum (AnotherSocketListenerEvent Int
k) = Int
k

    toEnum :: Int -> SocketListenerEvent
toEnum Int
0 = SocketListenerEvent
SocketListenerEventBinding
    toEnum Int
1 = SocketListenerEvent
SocketListenerEventBound
    toEnum Int
2 = SocketListenerEvent
SocketListenerEventListening
    toEnum Int
3 = SocketListenerEvent
SocketListenerEventListened
    toEnum Int
k = Int -> SocketListenerEvent
AnotherSocketListenerEvent Int
k

instance P.Ord SocketListenerEvent where
    compare :: SocketListenerEvent -> SocketListenerEvent -> Ordering
compare SocketListenerEvent
a SocketListenerEvent
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (SocketListenerEvent -> Int
forall a. Enum a => a -> Int
P.fromEnum SocketListenerEvent
a) (SocketListenerEvent -> Int
forall a. Enum a => a -> Int
P.fromEnum SocketListenerEvent
b)

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

foreign import ccall "g_socket_listener_event_get_type" c_g_socket_listener_event_get_type :: 
    IO GType

instance B.Types.TypedObject SocketListenerEvent where
    glibType :: IO GType
glibType = IO GType
c_g_socket_listener_event_get_type

instance B.Types.BoxedEnum SocketListenerEvent

-- Enum SocketFamily
-- | The protocol family of a t'GI.Gio.Objects.SocketAddress.SocketAddress'. (These values are
-- identical to the system defines @/AF_INET/@, @/AF_INET6/@ and @/AF_UNIX/@,
-- if available.)
-- 
-- /Since: 2.22/
data SocketFamily = 
      SocketFamilyInvalid
    -- ^ no address family
    | SocketFamilyUnix
    -- ^ the UNIX domain family
    | SocketFamilyIpv4
    -- ^ the IPv4 family
    | SocketFamilyIpv6
    -- ^ the IPv6 family
    | AnotherSocketFamily Int
    -- ^ Catch-all for unknown values
    deriving (Int -> SocketFamily -> ShowS
[SocketFamily] -> ShowS
SocketFamily -> String
(Int -> SocketFamily -> ShowS)
-> (SocketFamily -> String)
-> ([SocketFamily] -> ShowS)
-> Show SocketFamily
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SocketFamily] -> ShowS
$cshowList :: [SocketFamily] -> ShowS
show :: SocketFamily -> String
$cshow :: SocketFamily -> String
showsPrec :: Int -> SocketFamily -> ShowS
$cshowsPrec :: Int -> SocketFamily -> ShowS
Show, SocketFamily -> SocketFamily -> Bool
(SocketFamily -> SocketFamily -> Bool)
-> (SocketFamily -> SocketFamily -> Bool) -> Eq SocketFamily
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SocketFamily -> SocketFamily -> Bool
$c/= :: SocketFamily -> SocketFamily -> Bool
== :: SocketFamily -> SocketFamily -> Bool
$c== :: SocketFamily -> SocketFamily -> Bool
Eq)

instance P.Enum SocketFamily where
    fromEnum :: SocketFamily -> Int
fromEnum SocketFamily
SocketFamilyInvalid = Int
0
    fromEnum SocketFamily
SocketFamilyUnix = Int
1
    fromEnum SocketFamily
SocketFamilyIpv4 = Int
2
    fromEnum SocketFamily
SocketFamilyIpv6 = Int
10
    fromEnum (AnotherSocketFamily Int
k) = Int
k

    toEnum :: Int -> SocketFamily
toEnum Int
0 = SocketFamily
SocketFamilyInvalid
    toEnum Int
1 = SocketFamily
SocketFamilyUnix
    toEnum Int
2 = SocketFamily
SocketFamilyIpv4
    toEnum Int
10 = SocketFamily
SocketFamilyIpv6
    toEnum Int
k = Int -> SocketFamily
AnotherSocketFamily Int
k

instance P.Ord SocketFamily where
    compare :: SocketFamily -> SocketFamily -> Ordering
compare SocketFamily
a SocketFamily
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (SocketFamily -> Int
forall a. Enum a => a -> Int
P.fromEnum SocketFamily
a) (SocketFamily -> Int
forall a. Enum a => a -> Int
P.fromEnum SocketFamily
b)

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

foreign import ccall "g_socket_family_get_type" c_g_socket_family_get_type :: 
    IO GType

instance B.Types.TypedObject SocketFamily where
    glibType :: IO GType
glibType = IO GType
c_g_socket_family_get_type

instance B.Types.BoxedEnum SocketFamily

-- Enum SocketClientEvent
-- | Describes an event occurring on a t'GI.Gio.Objects.SocketClient.SocketClient'. See the
-- [event]("GI.Gio.Objects.SocketClient#g:signal:event") signal for more details.
-- 
-- Additional values may be added to this type in the future.
-- 
-- /Since: 2.32/
data SocketClientEvent = 
      SocketClientEventResolving
    -- ^ The client is doing a DNS lookup.
    | SocketClientEventResolved
    -- ^ The client has completed a DNS lookup.
    | SocketClientEventConnecting
    -- ^ The client is connecting to a remote
    --   host (either a proxy or the destination server).
    | SocketClientEventConnected
    -- ^ The client has connected to a remote
    --   host.
    | SocketClientEventProxyNegotiating
    -- ^ The client is negotiating
    --   with a proxy to connect to the destination server.
    | SocketClientEventProxyNegotiated
    -- ^ The client has negotiated
    --   with the proxy server.
    | SocketClientEventTlsHandshaking
    -- ^ The client is performing a
    --   TLS handshake.
    | SocketClientEventTlsHandshaked
    -- ^ The client has performed a
    --   TLS handshake.
    | SocketClientEventComplete
    -- ^ The client is done with a particular
    --   t'GI.Gio.Interfaces.SocketConnectable.SocketConnectable'.
    | AnotherSocketClientEvent Int
    -- ^ Catch-all for unknown values
    deriving (Int -> SocketClientEvent -> ShowS
[SocketClientEvent] -> ShowS
SocketClientEvent -> String
(Int -> SocketClientEvent -> ShowS)
-> (SocketClientEvent -> String)
-> ([SocketClientEvent] -> ShowS)
-> Show SocketClientEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SocketClientEvent] -> ShowS
$cshowList :: [SocketClientEvent] -> ShowS
show :: SocketClientEvent -> String
$cshow :: SocketClientEvent -> String
showsPrec :: Int -> SocketClientEvent -> ShowS
$cshowsPrec :: Int -> SocketClientEvent -> ShowS
Show, SocketClientEvent -> SocketClientEvent -> Bool
(SocketClientEvent -> SocketClientEvent -> Bool)
-> (SocketClientEvent -> SocketClientEvent -> Bool)
-> Eq SocketClientEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SocketClientEvent -> SocketClientEvent -> Bool
$c/= :: SocketClientEvent -> SocketClientEvent -> Bool
== :: SocketClientEvent -> SocketClientEvent -> Bool
$c== :: SocketClientEvent -> SocketClientEvent -> Bool
Eq)

instance P.Enum SocketClientEvent where
    fromEnum :: SocketClientEvent -> Int
fromEnum SocketClientEvent
SocketClientEventResolving = Int
0
    fromEnum SocketClientEvent
SocketClientEventResolved = Int
1
    fromEnum SocketClientEvent
SocketClientEventConnecting = Int
2
    fromEnum SocketClientEvent
SocketClientEventConnected = Int
3
    fromEnum SocketClientEvent
SocketClientEventProxyNegotiating = Int
4
    fromEnum SocketClientEvent
SocketClientEventProxyNegotiated = Int
5
    fromEnum SocketClientEvent
SocketClientEventTlsHandshaking = Int
6
    fromEnum SocketClientEvent
SocketClientEventTlsHandshaked = Int
7
    fromEnum SocketClientEvent
SocketClientEventComplete = Int
8
    fromEnum (AnotherSocketClientEvent Int
k) = Int
k

    toEnum :: Int -> SocketClientEvent
toEnum Int
0 = SocketClientEvent
SocketClientEventResolving
    toEnum Int
1 = SocketClientEvent
SocketClientEventResolved
    toEnum Int
2 = SocketClientEvent
SocketClientEventConnecting
    toEnum Int
3 = SocketClientEvent
SocketClientEventConnected
    toEnum Int
4 = SocketClientEvent
SocketClientEventProxyNegotiating
    toEnum Int
5 = SocketClientEvent
SocketClientEventProxyNegotiated
    toEnum Int
6 = SocketClientEvent
SocketClientEventTlsHandshaking
    toEnum Int
7 = SocketClientEvent
SocketClientEventTlsHandshaked
    toEnum Int
8 = SocketClientEvent
SocketClientEventComplete
    toEnum Int
k = Int -> SocketClientEvent
AnotherSocketClientEvent Int
k

instance P.Ord SocketClientEvent where
    compare :: SocketClientEvent -> SocketClientEvent -> Ordering
compare SocketClientEvent
a SocketClientEvent
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (SocketClientEvent -> Int
forall a. Enum a => a -> Int
P.fromEnum SocketClientEvent
a) (SocketClientEvent -> Int
forall a. Enum a => a -> Int
P.fromEnum SocketClientEvent
b)

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

foreign import ccall "g_socket_client_event_get_type" c_g_socket_client_event_get_type :: 
    IO GType

instance B.Types.TypedObject SocketClientEvent where
    glibType :: IO GType
glibType = IO GType
c_g_socket_client_event_get_type

instance B.Types.BoxedEnum SocketClientEvent

-- Enum ResourceError
-- | An error code used with @/G_RESOURCE_ERROR/@ in a t'GError' returned
-- from a t'GI.Gio.Structs.Resource.Resource' routine.
-- 
-- /Since: 2.32/
data ResourceError = 
      ResourceErrorNotFound
    -- ^ no file was found at the requested path
    | ResourceErrorInternal
    -- ^ unknown error
    | AnotherResourceError Int
    -- ^ Catch-all for unknown values
    deriving (Int -> ResourceError -> ShowS
[ResourceError] -> ShowS
ResourceError -> String
(Int -> ResourceError -> ShowS)
-> (ResourceError -> String)
-> ([ResourceError] -> ShowS)
-> Show ResourceError
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ResourceError] -> ShowS
$cshowList :: [ResourceError] -> ShowS
show :: ResourceError -> String
$cshow :: ResourceError -> String
showsPrec :: Int -> ResourceError -> ShowS
$cshowsPrec :: Int -> ResourceError -> ShowS
Show, ResourceError -> ResourceError -> Bool
(ResourceError -> ResourceError -> Bool)
-> (ResourceError -> ResourceError -> Bool) -> Eq ResourceError
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ResourceError -> ResourceError -> Bool
$c/= :: ResourceError -> ResourceError -> Bool
== :: ResourceError -> ResourceError -> Bool
$c== :: ResourceError -> ResourceError -> Bool
Eq)

instance P.Enum ResourceError where
    fromEnum :: ResourceError -> Int
fromEnum ResourceError
ResourceErrorNotFound = Int
0
    fromEnum ResourceError
ResourceErrorInternal = Int
1
    fromEnum (AnotherResourceError Int
k) = Int
k

    toEnum :: Int -> ResourceError
toEnum Int
0 = ResourceError
ResourceErrorNotFound
    toEnum Int
1 = ResourceError
ResourceErrorInternal
    toEnum Int
k = Int -> ResourceError
AnotherResourceError Int
k

instance P.Ord ResourceError where
    compare :: ResourceError -> ResourceError -> Ordering
compare ResourceError
a ResourceError
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (ResourceError -> Int
forall a. Enum a => a -> Int
P.fromEnum ResourceError
a) (ResourceError -> Int
forall a. Enum a => a -> Int
P.fromEnum ResourceError
b)

instance GErrorClass ResourceError where
    gerrorClassDomain :: ResourceError -> Text
gerrorClassDomain ResourceError
_ = Text
"g-resource-error-quark"

-- | Catch exceptions of type `ResourceError`. This is a specialized version of `Data.GI.Base.GError.catchGErrorJustDomain`.
catchResourceError ::
    IO a ->
    (ResourceError -> GErrorMessage -> IO a) ->
    IO a
catchResourceError :: IO a -> (ResourceError -> Text -> IO a) -> IO a
catchResourceError = IO a -> (ResourceError -> Text -> IO a) -> IO a
forall err a.
GErrorClass err =>
IO a -> (err -> Text -> IO a) -> IO a
catchGErrorJustDomain

-- | Handle exceptions of type `ResourceError`. This is a specialized version of `Data.GI.Base.GError.handleGErrorJustDomain`.
handleResourceError ::
    (ResourceError -> GErrorMessage -> IO a) ->
    IO a ->
    IO a
handleResourceError :: (ResourceError -> Text -> IO a) -> IO a -> IO a
handleResourceError = (ResourceError -> Text -> IO a) -> IO a -> IO a
forall err a.
GErrorClass err =>
(err -> Text -> IO a) -> IO a -> IO a
handleGErrorJustDomain

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

foreign import ccall "g_resource_error_get_type" c_g_resource_error_get_type :: 
    IO GType

instance B.Types.TypedObject ResourceError where
    glibType :: IO GType
glibType = IO GType
c_g_resource_error_get_type

instance B.Types.BoxedEnum ResourceError

-- Enum ResolverRecordType
-- | The type of record that 'GI.Gio.Objects.Resolver.resolverLookupRecords' or
-- 'GI.Gio.Objects.Resolver.resolverLookupRecordsAsync' should retrieve. The records are returned
-- as lists of t'GVariant' tuples. Each record type has different values in
-- the variant tuples returned.
-- 
-- 'GI.Gio.Enums.ResolverRecordTypeSrv' records are returned as variants with the signature
-- @(qqqs)@, containing a @guint16@ with the priority, a @guint16@ with the
-- weight, a @guint16@ with the port, and a string of the hostname.
-- 
-- 'GI.Gio.Enums.ResolverRecordTypeMx' records are returned as variants with the signature
-- @(qs)@, representing a @guint16@ with the preference, and a string containing
-- the mail exchanger hostname.
-- 
-- 'GI.Gio.Enums.ResolverRecordTypeTxt' records are returned as variants with the signature
-- @(as)@, representing an array of the strings in the text record. Note: Most TXT
-- records only contain a single string, but
-- <https://tools.ietf.org/html/rfc1035#section-3.3.14 RFC 1035> does allow a
-- record to contain multiple strings. The RFC which defines the interpretation
-- of a specific TXT record will likely require concatenation of multiple
-- strings if they are present, as with
-- <https://tools.ietf.org/html/rfc7208#section-3.3 RFC 7208>.
-- 
-- 'GI.Gio.Enums.ResolverRecordTypeSoa' records are returned as variants with the signature
-- @(ssuuuuu)@, representing a string containing the primary name server, a
-- string containing the administrator, the serial as a @guint32@, the refresh
-- interval as a @guint32@, the retry interval as a @guint32@, the expire timeout
-- as a @guint32@, and the TTL as a @guint32@.
-- 
-- 'GI.Gio.Enums.ResolverRecordTypeNs' records are returned as variants with the signature
-- @(s)@, representing a string of the hostname of the name server.
-- 
-- /Since: 2.34/
data ResolverRecordType = 
      ResolverRecordTypeSrv
    -- ^ look up DNS SRV records for a domain
    | ResolverRecordTypeMx
    -- ^ look up DNS MX records for a domain
    | ResolverRecordTypeTxt
    -- ^ look up DNS TXT records for a name
    | ResolverRecordTypeSoa
    -- ^ look up DNS SOA records for a zone
    | ResolverRecordTypeNs
    -- ^ look up DNS NS records for a domain
    | AnotherResolverRecordType Int
    -- ^ Catch-all for unknown values
    deriving (Int -> ResolverRecordType -> ShowS
[ResolverRecordType] -> ShowS
ResolverRecordType -> String
(Int -> ResolverRecordType -> ShowS)
-> (ResolverRecordType -> String)
-> ([ResolverRecordType] -> ShowS)
-> Show ResolverRecordType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ResolverRecordType] -> ShowS
$cshowList :: [ResolverRecordType] -> ShowS
show :: ResolverRecordType -> String
$cshow :: ResolverRecordType -> String
showsPrec :: Int -> ResolverRecordType -> ShowS
$cshowsPrec :: Int -> ResolverRecordType -> ShowS
Show, ResolverRecordType -> ResolverRecordType -> Bool
(ResolverRecordType -> ResolverRecordType -> Bool)
-> (ResolverRecordType -> ResolverRecordType -> Bool)
-> Eq ResolverRecordType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ResolverRecordType -> ResolverRecordType -> Bool
$c/= :: ResolverRecordType -> ResolverRecordType -> Bool
== :: ResolverRecordType -> ResolverRecordType -> Bool
$c== :: ResolverRecordType -> ResolverRecordType -> Bool
Eq)

instance P.Enum ResolverRecordType where
    fromEnum :: ResolverRecordType -> Int
fromEnum ResolverRecordType
ResolverRecordTypeSrv = Int
1
    fromEnum ResolverRecordType
ResolverRecordTypeMx = Int
2
    fromEnum ResolverRecordType
ResolverRecordTypeTxt = Int
3
    fromEnum ResolverRecordType
ResolverRecordTypeSoa = Int
4
    fromEnum ResolverRecordType
ResolverRecordTypeNs = Int
5
    fromEnum (AnotherResolverRecordType Int
k) = Int
k

    toEnum :: Int -> ResolverRecordType
toEnum Int
1 = ResolverRecordType
ResolverRecordTypeSrv
    toEnum Int
2 = ResolverRecordType
ResolverRecordTypeMx
    toEnum Int
3 = ResolverRecordType
ResolverRecordTypeTxt
    toEnum Int
4 = ResolverRecordType
ResolverRecordTypeSoa
    toEnum Int
5 = ResolverRecordType
ResolverRecordTypeNs
    toEnum Int
k = Int -> ResolverRecordType
AnotherResolverRecordType Int
k

instance P.Ord ResolverRecordType where
    compare :: ResolverRecordType -> ResolverRecordType -> Ordering
compare ResolverRecordType
a ResolverRecordType
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (ResolverRecordType -> Int
forall a. Enum a => a -> Int
P.fromEnum ResolverRecordType
a) (ResolverRecordType -> Int
forall a. Enum a => a -> Int
P.fromEnum ResolverRecordType
b)

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

foreign import ccall "g_resolver_record_type_get_type" c_g_resolver_record_type_get_type :: 
    IO GType

instance B.Types.TypedObject ResolverRecordType where
    glibType :: IO GType
glibType = IO GType
c_g_resolver_record_type_get_type

instance B.Types.BoxedEnum ResolverRecordType

-- Enum ResolverError
-- | An error code used with @/G_RESOLVER_ERROR/@ in a t'GError' returned
-- from a t'GI.Gio.Objects.Resolver.Resolver' routine.
-- 
-- /Since: 2.22/
data ResolverError = 
      ResolverErrorNotFound
    -- ^ the requested name\/address\/service was not
    --     found
    | ResolverErrorTemporaryFailure
    -- ^ the requested information could not
    --     be looked up due to a network error or similar problem
    | ResolverErrorInternal
    -- ^ unknown error
    | AnotherResolverError Int
    -- ^ Catch-all for unknown values
    deriving (Int -> ResolverError -> ShowS
[ResolverError] -> ShowS
ResolverError -> String
(Int -> ResolverError -> ShowS)
-> (ResolverError -> String)
-> ([ResolverError] -> ShowS)
-> Show ResolverError
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ResolverError] -> ShowS
$cshowList :: [ResolverError] -> ShowS
show :: ResolverError -> String
$cshow :: ResolverError -> String
showsPrec :: Int -> ResolverError -> ShowS
$cshowsPrec :: Int -> ResolverError -> ShowS
Show, ResolverError -> ResolverError -> Bool
(ResolverError -> ResolverError -> Bool)
-> (ResolverError -> ResolverError -> Bool) -> Eq ResolverError
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ResolverError -> ResolverError -> Bool
$c/= :: ResolverError -> ResolverError -> Bool
== :: ResolverError -> ResolverError -> Bool
$c== :: ResolverError -> ResolverError -> Bool
Eq)

instance P.Enum ResolverError where
    fromEnum :: ResolverError -> Int
fromEnum ResolverError
ResolverErrorNotFound = Int
0
    fromEnum ResolverError
ResolverErrorTemporaryFailure = Int
1
    fromEnum ResolverError
ResolverErrorInternal = Int
2
    fromEnum (AnotherResolverError Int
k) = Int
k

    toEnum :: Int -> ResolverError
toEnum Int
0 = ResolverError
ResolverErrorNotFound
    toEnum Int
1 = ResolverError
ResolverErrorTemporaryFailure
    toEnum Int
2 = ResolverError
ResolverErrorInternal
    toEnum Int
k = Int -> ResolverError
AnotherResolverError Int
k

instance P.Ord ResolverError where
    compare :: ResolverError -> ResolverError -> Ordering
compare ResolverError
a ResolverError
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (ResolverError -> Int
forall a. Enum a => a -> Int
P.fromEnum ResolverError
a) (ResolverError -> Int
forall a. Enum a => a -> Int
P.fromEnum ResolverError
b)

instance GErrorClass ResolverError where
    gerrorClassDomain :: ResolverError -> Text
gerrorClassDomain ResolverError
_ = Text
"g-resolver-error-quark"

-- | Catch exceptions of type `ResolverError`. This is a specialized version of `Data.GI.Base.GError.catchGErrorJustDomain`.
catchResolverError ::
    IO a ->
    (ResolverError -> GErrorMessage -> IO a) ->
    IO a
catchResolverError :: IO a -> (ResolverError -> Text -> IO a) -> IO a
catchResolverError = IO a -> (ResolverError -> Text -> IO a) -> IO a
forall err a.
GErrorClass err =>
IO a -> (err -> Text -> IO a) -> IO a
catchGErrorJustDomain

-- | Handle exceptions of type `ResolverError`. This is a specialized version of `Data.GI.Base.GError.handleGErrorJustDomain`.
handleResolverError ::
    (ResolverError -> GErrorMessage -> IO a) ->
    IO a ->
    IO a
handleResolverError :: (ResolverError -> Text -> IO a) -> IO a -> IO a
handleResolverError = (ResolverError -> Text -> IO a) -> IO a -> IO a
forall err a.
GErrorClass err =>
(err -> Text -> IO a) -> IO a -> IO a
handleGErrorJustDomain

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

foreign import ccall "g_resolver_error_get_type" c_g_resolver_error_get_type :: 
    IO GType

instance B.Types.TypedObject ResolverError where
    glibType :: IO GType
glibType = IO GType
c_g_resolver_error_get_type

instance B.Types.BoxedEnum ResolverError

-- Enum PollableReturn
-- | Return value for various IO operations that signal errors via the
-- return value and not necessarily via a t'GError'.
-- 
-- This enum exists to be able to return errors to callers without having to
-- allocate a t'GError'. Allocating @/GErrors/@ can be quite expensive for
-- regularly happening errors like 'GI.Gio.Enums.IOErrorEnumWouldBlock'.
-- 
-- In case of 'GI.Gio.Enums.PollableReturnFailed' a t'GError' should be set for the
-- operation to give details about the error that happened.
-- 
-- /Since: 2.60/
data PollableReturn = 
      PollableReturnFailed
    -- ^ Generic error condition for when an operation fails.
    | PollableReturnOk
    -- ^ The operation was successfully finished.
    | PollableReturnWouldBlock
    -- ^ The operation would block.
    | AnotherPollableReturn Int
    -- ^ Catch-all for unknown values
    deriving (Int -> PollableReturn -> ShowS
[PollableReturn] -> ShowS
PollableReturn -> String
(Int -> PollableReturn -> ShowS)
-> (PollableReturn -> String)
-> ([PollableReturn] -> ShowS)
-> Show PollableReturn
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PollableReturn] -> ShowS
$cshowList :: [PollableReturn] -> ShowS
show :: PollableReturn -> String
$cshow :: PollableReturn -> String
showsPrec :: Int -> PollableReturn -> ShowS
$cshowsPrec :: Int -> PollableReturn -> ShowS
Show, PollableReturn -> PollableReturn -> Bool
(PollableReturn -> PollableReturn -> Bool)
-> (PollableReturn -> PollableReturn -> Bool) -> Eq PollableReturn
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PollableReturn -> PollableReturn -> Bool
$c/= :: PollableReturn -> PollableReturn -> Bool
== :: PollableReturn -> PollableReturn -> Bool
$c== :: PollableReturn -> PollableReturn -> Bool
Eq)

instance P.Enum PollableReturn where
    fromEnum :: PollableReturn -> Int
fromEnum PollableReturn
PollableReturnFailed = Int
0
    fromEnum PollableReturn
PollableReturnOk = Int
1
    fromEnum PollableReturn
PollableReturnWouldBlock = Int
-27
    fromEnum (AnotherPollableReturn Int
k) = Int
k

    toEnum :: Int -> PollableReturn
toEnum Int
0 = PollableReturn
PollableReturnFailed
    toEnum Int
1 = PollableReturn
PollableReturnOk
    toEnum Int
-27 = PollableReturn
PollableReturnWouldBlock
    toEnum Int
k = Int -> PollableReturn
AnotherPollableReturn Int
k

instance P.Ord PollableReturn where
    compare :: PollableReturn -> PollableReturn -> Ordering
compare PollableReturn
a PollableReturn
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (PollableReturn -> Int
forall a. Enum a => a -> Int
P.fromEnum PollableReturn
a) (PollableReturn -> Int
forall a. Enum a => a -> Int
P.fromEnum PollableReturn
b)

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

foreign import ccall "g_pollable_return_get_type" c_g_pollable_return_get_type :: 
    IO GType

instance B.Types.TypedObject PollableReturn where
    glibType :: IO GType
glibType = IO GType
c_g_pollable_return_get_type

instance B.Types.BoxedEnum PollableReturn

-- Enum PasswordSave
-- | t'GI.Gio.Enums.PasswordSave' is used to indicate the lifespan of a saved password.
-- 
-- @/Gvfs/@ stores passwords in the Gnome keyring when this flag allows it
-- to, and later retrieves it again from there.
data PasswordSave = 
      PasswordSaveNever
    -- ^ never save a password.
    | PasswordSaveForSession
    -- ^ save a password for the session.
    | PasswordSavePermanently
    -- ^ save a password permanently.
    | AnotherPasswordSave Int
    -- ^ Catch-all for unknown values
    deriving (Int -> PasswordSave -> ShowS
[PasswordSave] -> ShowS
PasswordSave -> String
(Int -> PasswordSave -> ShowS)
-> (PasswordSave -> String)
-> ([PasswordSave] -> ShowS)
-> Show PasswordSave
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PasswordSave] -> ShowS
$cshowList :: [PasswordSave] -> ShowS
show :: PasswordSave -> String
$cshow :: PasswordSave -> String
showsPrec :: Int -> PasswordSave -> ShowS
$cshowsPrec :: Int -> PasswordSave -> ShowS
Show, PasswordSave -> PasswordSave -> Bool
(PasswordSave -> PasswordSave -> Bool)
-> (PasswordSave -> PasswordSave -> Bool) -> Eq PasswordSave
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PasswordSave -> PasswordSave -> Bool
$c/= :: PasswordSave -> PasswordSave -> Bool
== :: PasswordSave -> PasswordSave -> Bool
$c== :: PasswordSave -> PasswordSave -> Bool
Eq)

instance P.Enum PasswordSave where
    fromEnum :: PasswordSave -> Int
fromEnum PasswordSave
PasswordSaveNever = Int
0
    fromEnum PasswordSave
PasswordSaveForSession = Int
1
    fromEnum PasswordSave
PasswordSavePermanently = Int
2
    fromEnum (AnotherPasswordSave Int
k) = Int
k

    toEnum :: Int -> PasswordSave
toEnum Int
0 = PasswordSave
PasswordSaveNever
    toEnum Int
1 = PasswordSave
PasswordSaveForSession
    toEnum Int
2 = PasswordSave
PasswordSavePermanently
    toEnum Int
k = Int -> PasswordSave
AnotherPasswordSave Int
k

instance P.Ord PasswordSave where
    compare :: PasswordSave -> PasswordSave -> Ordering
compare PasswordSave
a PasswordSave
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (PasswordSave -> Int
forall a. Enum a => a -> Int
P.fromEnum PasswordSave
a) (PasswordSave -> Int
forall a. Enum a => a -> Int
P.fromEnum PasswordSave
b)

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

foreign import ccall "g_password_save_get_type" c_g_password_save_get_type :: 
    IO GType

instance B.Types.TypedObject PasswordSave where
    glibType :: IO GType
glibType = IO GType
c_g_password_save_get_type

instance B.Types.BoxedEnum PasswordSave

-- Enum NotificationPriority
-- | Priority levels for @/GNotifications/@.
-- 
-- /Since: 2.42/
data NotificationPriority = 
      NotificationPriorityNormal
    -- ^ the default priority, to be used for the
    --   majority of notifications (for example email messages, software updates,
    --   completed download\/sync operations)
    | NotificationPriorityLow
    -- ^ for notifications that do not require
    --   immediate attention - typically used for contextual background
    --   information, such as contact birthdays or local weather
    | NotificationPriorityHigh
    -- ^ for events that require more attention,
    --   usually because responses are time-sensitive (for example chat and SMS
    --   messages or alarms)
    | NotificationPriorityUrgent
    -- ^ for urgent notifications, or notifications
    --   that require a response in a short space of time (for example phone calls
    --   or emergency warnings)
    | AnotherNotificationPriority Int
    -- ^ Catch-all for unknown values
    deriving (Int -> NotificationPriority -> ShowS
[NotificationPriority] -> ShowS
NotificationPriority -> String
(Int -> NotificationPriority -> ShowS)
-> (NotificationPriority -> String)
-> ([NotificationPriority] -> ShowS)
-> Show NotificationPriority
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [NotificationPriority] -> ShowS
$cshowList :: [NotificationPriority] -> ShowS
show :: NotificationPriority -> String
$cshow :: NotificationPriority -> String
showsPrec :: Int -> NotificationPriority -> ShowS
$cshowsPrec :: Int -> NotificationPriority -> ShowS
Show, NotificationPriority -> NotificationPriority -> Bool
(NotificationPriority -> NotificationPriority -> Bool)
-> (NotificationPriority -> NotificationPriority -> Bool)
-> Eq NotificationPriority
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: NotificationPriority -> NotificationPriority -> Bool
$c/= :: NotificationPriority -> NotificationPriority -> Bool
== :: NotificationPriority -> NotificationPriority -> Bool
$c== :: NotificationPriority -> NotificationPriority -> Bool
Eq)

instance P.Enum NotificationPriority where
    fromEnum :: NotificationPriority -> Int
fromEnum NotificationPriority
NotificationPriorityNormal = Int
0
    fromEnum NotificationPriority
NotificationPriorityLow = Int
1
    fromEnum NotificationPriority
NotificationPriorityHigh = Int
2
    fromEnum NotificationPriority
NotificationPriorityUrgent = Int
3
    fromEnum (AnotherNotificationPriority Int
k) = Int
k

    toEnum :: Int -> NotificationPriority
toEnum Int
0 = NotificationPriority
NotificationPriorityNormal
    toEnum Int
1 = NotificationPriority
NotificationPriorityLow
    toEnum Int
2 = NotificationPriority
NotificationPriorityHigh
    toEnum Int
3 = NotificationPriority
NotificationPriorityUrgent
    toEnum Int
k = Int -> NotificationPriority
AnotherNotificationPriority Int
k

instance P.Ord NotificationPriority where
    compare :: NotificationPriority -> NotificationPriority -> Ordering
compare NotificationPriority
a NotificationPriority
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (NotificationPriority -> Int
forall a. Enum a => a -> Int
P.fromEnum NotificationPriority
a) (NotificationPriority -> Int
forall a. Enum a => a -> Int
P.fromEnum NotificationPriority
b)

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

foreign import ccall "g_notification_priority_get_type" c_g_notification_priority_get_type :: 
    IO GType

instance B.Types.TypedObject NotificationPriority where
    glibType :: IO GType
glibType = IO GType
c_g_notification_priority_get_type

instance B.Types.BoxedEnum NotificationPriority

-- Enum NetworkConnectivity
-- | The host\'s network connectivity state, as reported by t'GI.Gio.Interfaces.NetworkMonitor.NetworkMonitor'.
-- 
-- /Since: 2.44/
data NetworkConnectivity = 
      NetworkConnectivityLocal
    -- ^ The host is not configured with a
    --   route to the Internet; it may or may not be connected to a local
    --   network.
    | NetworkConnectivityLimited
    -- ^ The host is connected to a network, but
    --   does not appear to be able to reach the full Internet, perhaps
    --   due to upstream network problems.
    | NetworkConnectivityPortal
    -- ^ The host is behind a captive portal and
    --   cannot reach the full Internet.
    | NetworkConnectivityFull
    -- ^ The host is connected to a network, and
    --   appears to be able to reach the full Internet.
    | AnotherNetworkConnectivity Int
    -- ^ Catch-all for unknown values
    deriving (Int -> NetworkConnectivity -> ShowS
[NetworkConnectivity] -> ShowS
NetworkConnectivity -> String
(Int -> NetworkConnectivity -> ShowS)
-> (NetworkConnectivity -> String)
-> ([NetworkConnectivity] -> ShowS)
-> Show NetworkConnectivity
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [NetworkConnectivity] -> ShowS
$cshowList :: [NetworkConnectivity] -> ShowS
show :: NetworkConnectivity -> String
$cshow :: NetworkConnectivity -> String
showsPrec :: Int -> NetworkConnectivity -> ShowS
$cshowsPrec :: Int -> NetworkConnectivity -> ShowS
Show, NetworkConnectivity -> NetworkConnectivity -> Bool
(NetworkConnectivity -> NetworkConnectivity -> Bool)
-> (NetworkConnectivity -> NetworkConnectivity -> Bool)
-> Eq NetworkConnectivity
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: NetworkConnectivity -> NetworkConnectivity -> Bool
$c/= :: NetworkConnectivity -> NetworkConnectivity -> Bool
== :: NetworkConnectivity -> NetworkConnectivity -> Bool
$c== :: NetworkConnectivity -> NetworkConnectivity -> Bool
Eq)

instance P.Enum NetworkConnectivity where
    fromEnum :: NetworkConnectivity -> Int
fromEnum NetworkConnectivity
NetworkConnectivityLocal = Int
1
    fromEnum NetworkConnectivity
NetworkConnectivityLimited = Int
2
    fromEnum NetworkConnectivity
NetworkConnectivityPortal = Int
3
    fromEnum NetworkConnectivity
NetworkConnectivityFull = Int
4
    fromEnum (AnotherNetworkConnectivity Int
k) = Int
k

    toEnum :: Int -> NetworkConnectivity
toEnum Int
1 = NetworkConnectivity
NetworkConnectivityLocal
    toEnum Int
2 = NetworkConnectivity
NetworkConnectivityLimited
    toEnum Int
3 = NetworkConnectivity
NetworkConnectivityPortal
    toEnum Int
4 = NetworkConnectivity
NetworkConnectivityFull
    toEnum Int
k = Int -> NetworkConnectivity
AnotherNetworkConnectivity Int
k

instance P.Ord NetworkConnectivity where
    compare :: NetworkConnectivity -> NetworkConnectivity -> Ordering
compare NetworkConnectivity
a NetworkConnectivity
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (NetworkConnectivity -> Int
forall a. Enum a => a -> Int
P.fromEnum NetworkConnectivity
a) (NetworkConnectivity -> Int
forall a. Enum a => a -> Int
P.fromEnum NetworkConnectivity
b)

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

foreign import ccall "g_network_connectivity_get_type" c_g_network_connectivity_get_type :: 
    IO GType

instance B.Types.TypedObject NetworkConnectivity where
    glibType :: IO GType
glibType = IO GType
c_g_network_connectivity_get_type

instance B.Types.BoxedEnum NetworkConnectivity

-- Enum MountOperationResult
-- | t'GI.Gio.Enums.MountOperationResult' is returned as a result when a request for
-- information is send by the mounting operation.
data MountOperationResult = 
      MountOperationResultHandled
    -- ^ The request was fulfilled and the
    --     user specified data is now available
    | MountOperationResultAborted
    -- ^ The user requested the mount operation
    --     to be aborted
    | MountOperationResultUnhandled
    -- ^ The request was unhandled (i.e. not
    --     implemented)
    | AnotherMountOperationResult Int
    -- ^ Catch-all for unknown values
    deriving (Int -> MountOperationResult -> ShowS
[MountOperationResult] -> ShowS
MountOperationResult -> String
(Int -> MountOperationResult -> ShowS)
-> (MountOperationResult -> String)
-> ([MountOperationResult] -> ShowS)
-> Show MountOperationResult
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [MountOperationResult] -> ShowS
$cshowList :: [MountOperationResult] -> ShowS
show :: MountOperationResult -> String
$cshow :: MountOperationResult -> String
showsPrec :: Int -> MountOperationResult -> ShowS
$cshowsPrec :: Int -> MountOperationResult -> ShowS
Show, MountOperationResult -> MountOperationResult -> Bool
(MountOperationResult -> MountOperationResult -> Bool)
-> (MountOperationResult -> MountOperationResult -> Bool)
-> Eq MountOperationResult
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MountOperationResult -> MountOperationResult -> Bool
$c/= :: MountOperationResult -> MountOperationResult -> Bool
== :: MountOperationResult -> MountOperationResult -> Bool
$c== :: MountOperationResult -> MountOperationResult -> Bool
Eq)

instance P.Enum MountOperationResult where
    fromEnum :: MountOperationResult -> Int
fromEnum MountOperationResult
MountOperationResultHandled = Int
0
    fromEnum MountOperationResult
MountOperationResultAborted = Int
1
    fromEnum MountOperationResult
MountOperationResultUnhandled = Int
2
    fromEnum (AnotherMountOperationResult Int
k) = Int
k

    toEnum :: Int -> MountOperationResult
toEnum Int
0 = MountOperationResult
MountOperationResultHandled
    toEnum Int
1 = MountOperationResult
MountOperationResultAborted
    toEnum Int
2 = MountOperationResult
MountOperationResultUnhandled
    toEnum Int
k = Int -> MountOperationResult
AnotherMountOperationResult Int
k

instance P.Ord MountOperationResult where
    compare :: MountOperationResult -> MountOperationResult -> Ordering
compare MountOperationResult
a MountOperationResult
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (MountOperationResult -> Int
forall a. Enum a => a -> Int
P.fromEnum MountOperationResult
a) (MountOperationResult -> Int
forall a. Enum a => a -> Int
P.fromEnum MountOperationResult
b)

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

foreign import ccall "g_mount_operation_result_get_type" c_g_mount_operation_result_get_type :: 
    IO GType

instance B.Types.TypedObject MountOperationResult where
    glibType :: IO GType
glibType = IO GType
c_g_mount_operation_result_get_type

instance B.Types.BoxedEnum MountOperationResult

-- Enum MemoryMonitorWarningLevel
-- | Memory availability warning levels.
-- 
-- Note that because new values might be added, it is recommended that applications check
-- t'GI.Gio.Enums.MemoryMonitorWarningLevel' as ranges, for example:
-- 
-- === /C code/
-- >
-- >if (warning_level > G_MEMORY_MONITOR_WARNING_LEVEL_LOW)
-- >  drop_caches ();
-- 
-- 
-- /Since: 2.64/
data MemoryMonitorWarningLevel = 
      MemoryMonitorWarningLevelLow
    -- ^ Memory on the device is low, processes
    --   should free up unneeded resources (for example, in-memory caches) so they can
    --   be used elsewhere.
    | MemoryMonitorWarningLevelMedium
    -- ^ Same as /@gMEMORYMONITORWARNINGLEVELLOW@/
    --   but the device has even less free memory, so processes should try harder to free
    --   up unneeded resources. If your process does not need to stay running, it is a
    --   good time for it to quit.
    | MemoryMonitorWarningLevelCritical
    -- ^ The system will soon start terminating
    --   processes to reclaim memory, including background processes.
    | AnotherMemoryMonitorWarningLevel Int
    -- ^ Catch-all for unknown values
    deriving (Int -> MemoryMonitorWarningLevel -> ShowS
[MemoryMonitorWarningLevel] -> ShowS
MemoryMonitorWarningLevel -> String
(Int -> MemoryMonitorWarningLevel -> ShowS)
-> (MemoryMonitorWarningLevel -> String)
-> ([MemoryMonitorWarningLevel] -> ShowS)
-> Show MemoryMonitorWarningLevel
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [MemoryMonitorWarningLevel] -> ShowS
$cshowList :: [MemoryMonitorWarningLevel] -> ShowS
show :: MemoryMonitorWarningLevel -> String
$cshow :: MemoryMonitorWarningLevel -> String
showsPrec :: Int -> MemoryMonitorWarningLevel -> ShowS
$cshowsPrec :: Int -> MemoryMonitorWarningLevel -> ShowS
Show, MemoryMonitorWarningLevel -> MemoryMonitorWarningLevel -> Bool
(MemoryMonitorWarningLevel -> MemoryMonitorWarningLevel -> Bool)
-> (MemoryMonitorWarningLevel -> MemoryMonitorWarningLevel -> Bool)
-> Eq MemoryMonitorWarningLevel
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MemoryMonitorWarningLevel -> MemoryMonitorWarningLevel -> Bool
$c/= :: MemoryMonitorWarningLevel -> MemoryMonitorWarningLevel -> Bool
== :: MemoryMonitorWarningLevel -> MemoryMonitorWarningLevel -> Bool
$c== :: MemoryMonitorWarningLevel -> MemoryMonitorWarningLevel -> Bool
Eq)

instance P.Enum MemoryMonitorWarningLevel where
    fromEnum :: MemoryMonitorWarningLevel -> Int
fromEnum MemoryMonitorWarningLevel
MemoryMonitorWarningLevelLow = Int
50
    fromEnum MemoryMonitorWarningLevel
MemoryMonitorWarningLevelMedium = Int
100
    fromEnum MemoryMonitorWarningLevel
MemoryMonitorWarningLevelCritical = Int
255
    fromEnum (AnotherMemoryMonitorWarningLevel Int
k) = Int
k

    toEnum :: Int -> MemoryMonitorWarningLevel
toEnum Int
50 = MemoryMonitorWarningLevel
MemoryMonitorWarningLevelLow
    toEnum Int
100 = MemoryMonitorWarningLevel
MemoryMonitorWarningLevelMedium
    toEnum Int
255 = MemoryMonitorWarningLevel
MemoryMonitorWarningLevelCritical
    toEnum Int
k = Int -> MemoryMonitorWarningLevel
AnotherMemoryMonitorWarningLevel Int
k

instance P.Ord MemoryMonitorWarningLevel where
    compare :: MemoryMonitorWarningLevel -> MemoryMonitorWarningLevel -> Ordering
compare MemoryMonitorWarningLevel
a MemoryMonitorWarningLevel
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (MemoryMonitorWarningLevel -> Int
forall a. Enum a => a -> Int
P.fromEnum MemoryMonitorWarningLevel
a) (MemoryMonitorWarningLevel -> Int
forall a. Enum a => a -> Int
P.fromEnum MemoryMonitorWarningLevel
b)

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

foreign import ccall "g_memory_monitor_warning_level_get_type" c_g_memory_monitor_warning_level_get_type :: 
    IO GType

instance B.Types.TypedObject MemoryMonitorWarningLevel where
    glibType :: IO GType
glibType = IO GType
c_g_memory_monitor_warning_level_get_type

instance B.Types.BoxedEnum MemoryMonitorWarningLevel

-- Enum IOModuleScopeFlags
-- | Flags for use with @/g_io_module_scope_new()/@.
-- 
-- /Since: 2.30/
data IOModuleScopeFlags = 
      IOModuleScopeFlagsNone
    -- ^ No module scan flags
    | IOModuleScopeFlagsBlockDuplicates
    -- ^ When using this scope to load or
    --     scan modules, automatically block a modules which has the same base
    --     basename as previously loaded module.
    | AnotherIOModuleScopeFlags Int
    -- ^ Catch-all for unknown values
    deriving (Int -> IOModuleScopeFlags -> ShowS
[IOModuleScopeFlags] -> ShowS
IOModuleScopeFlags -> String
(Int -> IOModuleScopeFlags -> ShowS)
-> (IOModuleScopeFlags -> String)
-> ([IOModuleScopeFlags] -> ShowS)
-> Show IOModuleScopeFlags
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [IOModuleScopeFlags] -> ShowS
$cshowList :: [IOModuleScopeFlags] -> ShowS
show :: IOModuleScopeFlags -> String
$cshow :: IOModuleScopeFlags -> String
showsPrec :: Int -> IOModuleScopeFlags -> ShowS
$cshowsPrec :: Int -> IOModuleScopeFlags -> ShowS
Show, IOModuleScopeFlags -> IOModuleScopeFlags -> Bool
(IOModuleScopeFlags -> IOModuleScopeFlags -> Bool)
-> (IOModuleScopeFlags -> IOModuleScopeFlags -> Bool)
-> Eq IOModuleScopeFlags
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: IOModuleScopeFlags -> IOModuleScopeFlags -> Bool
$c/= :: IOModuleScopeFlags -> IOModuleScopeFlags -> Bool
== :: IOModuleScopeFlags -> IOModuleScopeFlags -> Bool
$c== :: IOModuleScopeFlags -> IOModuleScopeFlags -> Bool
Eq)

instance P.Enum IOModuleScopeFlags where
    fromEnum :: IOModuleScopeFlags -> Int
fromEnum IOModuleScopeFlags
IOModuleScopeFlagsNone = Int
0
    fromEnum IOModuleScopeFlags
IOModuleScopeFlagsBlockDuplicates = Int
1
    fromEnum (AnotherIOModuleScopeFlags Int
k) = Int
k

    toEnum :: Int -> IOModuleScopeFlags
toEnum Int
0 = IOModuleScopeFlags
IOModuleScopeFlagsNone
    toEnum Int
1 = IOModuleScopeFlags
IOModuleScopeFlagsBlockDuplicates
    toEnum Int
k = Int -> IOModuleScopeFlags
AnotherIOModuleScopeFlags Int
k

instance P.Ord IOModuleScopeFlags where
    compare :: IOModuleScopeFlags -> IOModuleScopeFlags -> Ordering
compare IOModuleScopeFlags
a IOModuleScopeFlags
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (IOModuleScopeFlags -> Int
forall a. Enum a => a -> Int
P.fromEnum IOModuleScopeFlags
a) (IOModuleScopeFlags -> Int
forall a. Enum a => a -> Int
P.fromEnum IOModuleScopeFlags
b)

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

foreign import ccall "g_io_module_scope_flags_get_type" c_g_io_module_scope_flags_get_type :: 
    IO GType

instance B.Types.TypedObject IOModuleScopeFlags where
    glibType :: IO GType
glibType = IO GType
c_g_io_module_scope_flags_get_type

instance B.Types.BoxedEnum IOModuleScopeFlags

-- Enum IOErrorEnum
-- | Error codes returned by GIO functions.
-- 
-- Note that this domain may be extended in future GLib releases. In
-- general, new error codes either only apply to new APIs, or else
-- replace 'GI.Gio.Enums.IOErrorEnumFailed' in cases that were not explicitly
-- distinguished before. You should therefore avoid writing code like
-- 
-- === /C code/
-- >
-- >if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_FAILED))
-- >  {
-- >    // Assume that this is EPRINTERONFIRE
-- >    ...
-- >  }
-- 
-- but should instead treat all unrecognized error codes the same as
-- @/G_IO_ERROR_FAILED/@.
-- 
-- See also t'GI.Gio.Enums.PollableReturn' for a cheaper way of returning
-- 'GI.Gio.Enums.IOErrorEnumWouldBlock' to callers without allocating a t'GError'.
data IOErrorEnum = 
      IOErrorEnumFailed
    -- ^ Generic error condition for when an operation fails
    --     and no more specific t'GI.Gio.Enums.IOErrorEnum' value is defined.
    | IOErrorEnumNotFound
    -- ^ File not found.
    | IOErrorEnumExists
    -- ^ File already exists.
    | IOErrorEnumIsDirectory
    -- ^ File is a directory.
    | IOErrorEnumNotDirectory
    -- ^ File is not a directory.
    | IOErrorEnumNotEmpty
    -- ^ File is a directory that isn\'t empty.
    | IOErrorEnumNotRegularFile
    -- ^ File is not a regular file.
    | IOErrorEnumNotSymbolicLink
    -- ^ File is not a symbolic link.
    | IOErrorEnumNotMountableFile
    -- ^ File cannot be mounted.
    | IOErrorEnumFilenameTooLong
    -- ^ Filename is too many characters.
    | IOErrorEnumInvalidFilename
    -- ^ Filename is invalid or contains invalid characters.
    | IOErrorEnumTooManyLinks
    -- ^ File contains too many symbolic links.
    | IOErrorEnumNoSpace
    -- ^ No space left on drive.
    | IOErrorEnumInvalidArgument
    -- ^ Invalid argument.
    | IOErrorEnumPermissionDenied
    -- ^ Permission denied.
    | IOErrorEnumNotSupported
    -- ^ Operation (or one of its parameters) not supported
    | IOErrorEnumNotMounted
    -- ^ File isn\'t mounted.
    | IOErrorEnumAlreadyMounted
    -- ^ File is already mounted.
    | IOErrorEnumClosed
    -- ^ File was closed.
    | IOErrorEnumCancelled
    -- ^ Operation was cancelled. See t'GI.Gio.Objects.Cancellable.Cancellable'.
    | IOErrorEnumPending
    -- ^ Operations are still pending.
    | IOErrorEnumReadOnly
    -- ^ File is read only.
    | IOErrorEnumCantCreateBackup
    -- ^ Backup couldn\'t be created.
    | IOErrorEnumWrongEtag
    -- ^ File\'s Entity Tag was incorrect.
    | IOErrorEnumTimedOut
    -- ^ Operation timed out.
    | IOErrorEnumWouldRecurse
    -- ^ Operation would be recursive.
    | IOErrorEnumBusy
    -- ^ File is busy.
    | IOErrorEnumWouldBlock
    -- ^ Operation would block.
    | IOErrorEnumHostNotFound
    -- ^ Host couldn\'t be found (remote operations).
    | IOErrorEnumWouldMerge
    -- ^ Operation would merge files.
    | IOErrorEnumFailedHandled
    -- ^ Operation failed and a helper program has
    --     already interacted with the user. Do not display any error dialog.
    | IOErrorEnumTooManyOpenFiles
    -- ^ The current process has too many files
    --     open and can\'t open any more. Duplicate descriptors do count toward
    --     this limit. Since 2.20
    | IOErrorEnumNotInitialized
    -- ^ The object has not been initialized. Since 2.22
    | IOErrorEnumAddressInUse
    -- ^ The requested address is already in use. Since 2.22
    | IOErrorEnumPartialInput
    -- ^ Need more input to finish operation. Since 2.24
    | IOErrorEnumInvalidData
    -- ^ The input data was invalid. Since 2.24
    | IOErrorEnumDbusError
    -- ^ A remote object generated an error that
    --     doesn\'t correspond to a locally registered t'GError' error
    --     domain. Use 'GI.Gio.Functions.dbusErrorGetRemoteError' to extract the D-Bus
    --     error name and 'GI.Gio.Functions.dbusErrorStripRemoteError' to fix up the
    --     message so it matches what was received on the wire. Since 2.26.
    | IOErrorEnumHostUnreachable
    -- ^ Host unreachable. Since 2.26
    | IOErrorEnumNetworkUnreachable
    -- ^ Network unreachable. Since 2.26
    | IOErrorEnumConnectionRefused
    -- ^ Connection refused. Since 2.26
    | IOErrorEnumProxyFailed
    -- ^ Connection to proxy server failed. Since 2.26
    | IOErrorEnumProxyAuthFailed
    -- ^ Proxy authentication failed. Since 2.26
    | IOErrorEnumProxyNeedAuth
    -- ^ Proxy server needs authentication. Since 2.26
    | IOErrorEnumProxyNotAllowed
    -- ^ Proxy connection is not allowed by ruleset.
    --     Since 2.26
    | IOErrorEnumBrokenPipe
    -- ^ Broken pipe. Since 2.36
    | IOErrorEnumConnectionClosed
    -- ^ Connection closed by peer. Note that this
    --     is the same code as 'GI.Gio.Enums.IOErrorEnumBrokenPipe'; before 2.44 some
    --     \"connection closed\" errors returned 'GI.Gio.Enums.IOErrorEnumBrokenPipe', but others
    --     returned 'GI.Gio.Enums.IOErrorEnumFailed'. Now they should all return the same
    --     value, which has this more logical name. Since 2.44.
    | IOErrorEnumNotConnected
    -- ^ Transport endpoint is not connected. Since 2.44
    | IOErrorEnumMessageTooLarge
    -- ^ Message too large. Since 2.48.
    | AnotherIOErrorEnum Int
    -- ^ Catch-all for unknown values
    deriving (Int -> IOErrorEnum -> ShowS
[IOErrorEnum] -> ShowS
IOErrorEnum -> String
(Int -> IOErrorEnum -> ShowS)
-> (IOErrorEnum -> String)
-> ([IOErrorEnum] -> ShowS)
-> Show IOErrorEnum
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [IOErrorEnum] -> ShowS
$cshowList :: [IOErrorEnum] -> ShowS
show :: IOErrorEnum -> String
$cshow :: IOErrorEnum -> String
showsPrec :: Int -> IOErrorEnum -> ShowS
$cshowsPrec :: Int -> IOErrorEnum -> ShowS
Show, IOErrorEnum -> IOErrorEnum -> Bool
(IOErrorEnum -> IOErrorEnum -> Bool)
-> (IOErrorEnum -> IOErrorEnum -> Bool) -> Eq IOErrorEnum
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: IOErrorEnum -> IOErrorEnum -> Bool
$c/= :: IOErrorEnum -> IOErrorEnum -> Bool
== :: IOErrorEnum -> IOErrorEnum -> Bool
$c== :: IOErrorEnum -> IOErrorEnum -> Bool
Eq)

instance P.Enum IOErrorEnum where
    fromEnum :: IOErrorEnum -> Int
fromEnum IOErrorEnum
IOErrorEnumFailed = Int
0
    fromEnum IOErrorEnum
IOErrorEnumNotFound = Int
1
    fromEnum IOErrorEnum
IOErrorEnumExists = Int
2
    fromEnum IOErrorEnum
IOErrorEnumIsDirectory = Int
3
    fromEnum IOErrorEnum
IOErrorEnumNotDirectory = Int
4
    fromEnum IOErrorEnum
IOErrorEnumNotEmpty = Int
5
    fromEnum IOErrorEnum
IOErrorEnumNotRegularFile = Int
6
    fromEnum IOErrorEnum
IOErrorEnumNotSymbolicLink = Int
7
    fromEnum IOErrorEnum
IOErrorEnumNotMountableFile = Int
8
    fromEnum IOErrorEnum
IOErrorEnumFilenameTooLong = Int
9
    fromEnum IOErrorEnum
IOErrorEnumInvalidFilename = Int
10
    fromEnum IOErrorEnum
IOErrorEnumTooManyLinks = Int
11
    fromEnum IOErrorEnum
IOErrorEnumNoSpace = Int
12
    fromEnum IOErrorEnum
IOErrorEnumInvalidArgument = Int
13
    fromEnum IOErrorEnum
IOErrorEnumPermissionDenied = Int
14
    fromEnum IOErrorEnum
IOErrorEnumNotSupported = Int
15
    fromEnum IOErrorEnum
IOErrorEnumNotMounted = Int
16
    fromEnum IOErrorEnum
IOErrorEnumAlreadyMounted = Int
17
    fromEnum IOErrorEnum
IOErrorEnumClosed = Int
18
    fromEnum IOErrorEnum
IOErrorEnumCancelled = Int
19
    fromEnum IOErrorEnum
IOErrorEnumPending = Int
20
    fromEnum IOErrorEnum
IOErrorEnumReadOnly = Int
21
    fromEnum IOErrorEnum
IOErrorEnumCantCreateBackup = Int
22
    fromEnum IOErrorEnum
IOErrorEnumWrongEtag = Int
23
    fromEnum IOErrorEnum
IOErrorEnumTimedOut = Int
24
    fromEnum IOErrorEnum
IOErrorEnumWouldRecurse = Int
25
    fromEnum IOErrorEnum
IOErrorEnumBusy = Int
26
    fromEnum IOErrorEnum
IOErrorEnumWouldBlock = Int
27
    fromEnum IOErrorEnum
IOErrorEnumHostNotFound = Int
28
    fromEnum IOErrorEnum
IOErrorEnumWouldMerge = Int
29
    fromEnum IOErrorEnum
IOErrorEnumFailedHandled = Int
30
    fromEnum IOErrorEnum
IOErrorEnumTooManyOpenFiles = Int
31
    fromEnum IOErrorEnum
IOErrorEnumNotInitialized = Int
32
    fromEnum IOErrorEnum
IOErrorEnumAddressInUse = Int
33
    fromEnum IOErrorEnum
IOErrorEnumPartialInput = Int
34
    fromEnum IOErrorEnum
IOErrorEnumInvalidData = Int
35
    fromEnum IOErrorEnum
IOErrorEnumDbusError = Int
36
    fromEnum IOErrorEnum
IOErrorEnumHostUnreachable = Int
37
    fromEnum IOErrorEnum
IOErrorEnumNetworkUnreachable = Int
38
    fromEnum IOErrorEnum
IOErrorEnumConnectionRefused = Int
39
    fromEnum IOErrorEnum
IOErrorEnumProxyFailed = Int
40
    fromEnum IOErrorEnum
IOErrorEnumProxyAuthFailed = Int
41
    fromEnum IOErrorEnum
IOErrorEnumProxyNeedAuth = Int
42
    fromEnum IOErrorEnum
IOErrorEnumProxyNotAllowed = Int
43
    fromEnum IOErrorEnum
IOErrorEnumBrokenPipe = Int
44
    fromEnum IOErrorEnum
IOErrorEnumConnectionClosed = Int
44
    fromEnum IOErrorEnum
IOErrorEnumNotConnected = Int
45
    fromEnum IOErrorEnum
IOErrorEnumMessageTooLarge = Int
46
    fromEnum (AnotherIOErrorEnum Int
k) = Int
k

    toEnum :: Int -> IOErrorEnum
toEnum Int
0 = IOErrorEnum
IOErrorEnumFailed
    toEnum Int
1 = IOErrorEnum
IOErrorEnumNotFound
    toEnum Int
2 = IOErrorEnum
IOErrorEnumExists
    toEnum Int
3 = IOErrorEnum
IOErrorEnumIsDirectory
    toEnum Int
4 = IOErrorEnum
IOErrorEnumNotDirectory
    toEnum Int
5 = IOErrorEnum
IOErrorEnumNotEmpty
    toEnum Int
6 = IOErrorEnum
IOErrorEnumNotRegularFile
    toEnum Int
7 = IOErrorEnum
IOErrorEnumNotSymbolicLink
    toEnum Int
8 = IOErrorEnum
IOErrorEnumNotMountableFile
    toEnum Int
9 = IOErrorEnum
IOErrorEnumFilenameTooLong
    toEnum Int
10 = IOErrorEnum
IOErrorEnumInvalidFilename
    toEnum Int
11 = IOErrorEnum
IOErrorEnumTooManyLinks
    toEnum Int
12 = IOErrorEnum
IOErrorEnumNoSpace
    toEnum Int
13 = IOErrorEnum
IOErrorEnumInvalidArgument
    toEnum Int
14 = IOErrorEnum
IOErrorEnumPermissionDenied
    toEnum Int
15 = IOErrorEnum
IOErrorEnumNotSupported
    toEnum Int
16 = IOErrorEnum
IOErrorEnumNotMounted
    toEnum Int
17 = IOErrorEnum
IOErrorEnumAlreadyMounted
    toEnum Int
18 = IOErrorEnum
IOErrorEnumClosed
    toEnum Int
19 = IOErrorEnum
IOErrorEnumCancelled
    toEnum Int
20 = IOErrorEnum
IOErrorEnumPending
    toEnum Int
21 = IOErrorEnum
IOErrorEnumReadOnly
    toEnum Int
22 = IOErrorEnum
IOErrorEnumCantCreateBackup
    toEnum Int
23 = IOErrorEnum
IOErrorEnumWrongEtag
    toEnum Int
24 = IOErrorEnum
IOErrorEnumTimedOut
    toEnum Int
25 = IOErrorEnum
IOErrorEnumWouldRecurse
    toEnum Int
26 = IOErrorEnum
IOErrorEnumBusy
    toEnum Int
27 = IOErrorEnum
IOErrorEnumWouldBlock
    toEnum Int
28 = IOErrorEnum
IOErrorEnumHostNotFound
    toEnum Int
29 = IOErrorEnum
IOErrorEnumWouldMerge
    toEnum Int
30 = IOErrorEnum
IOErrorEnumFailedHandled
    toEnum Int
31 = IOErrorEnum
IOErrorEnumTooManyOpenFiles
    toEnum Int
32 = IOErrorEnum
IOErrorEnumNotInitialized
    toEnum Int
33 = IOErrorEnum
IOErrorEnumAddressInUse
    toEnum Int
34 = IOErrorEnum
IOErrorEnumPartialInput
    toEnum Int
35 = IOErrorEnum
IOErrorEnumInvalidData
    toEnum Int
36 = IOErrorEnum
IOErrorEnumDbusError
    toEnum Int
37 = IOErrorEnum
IOErrorEnumHostUnreachable
    toEnum Int
38 = IOErrorEnum
IOErrorEnumNetworkUnreachable
    toEnum Int
39 = IOErrorEnum
IOErrorEnumConnectionRefused
    toEnum Int
40 = IOErrorEnum
IOErrorEnumProxyFailed
    toEnum Int
41 = IOErrorEnum
IOErrorEnumProxyAuthFailed
    toEnum Int
42 = IOErrorEnum
IOErrorEnumProxyNeedAuth
    toEnum Int
43 = IOErrorEnum
IOErrorEnumProxyNotAllowed
    toEnum Int
44 = IOErrorEnum
IOErrorEnumBrokenPipe
    toEnum Int
45 = IOErrorEnum
IOErrorEnumNotConnected
    toEnum Int
46 = IOErrorEnum
IOErrorEnumMessageTooLarge
    toEnum Int
k = Int -> IOErrorEnum
AnotherIOErrorEnum Int
k

instance P.Ord IOErrorEnum where
    compare :: IOErrorEnum -> IOErrorEnum -> Ordering
compare IOErrorEnum
a IOErrorEnum
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (IOErrorEnum -> Int
forall a. Enum a => a -> Int
P.fromEnum IOErrorEnum
a) (IOErrorEnum -> Int
forall a. Enum a => a -> Int
P.fromEnum IOErrorEnum
b)

instance GErrorClass IOErrorEnum where
    gerrorClassDomain :: IOErrorEnum -> Text
gerrorClassDomain IOErrorEnum
_ = Text
"g-io-error-quark"

-- | Catch exceptions of type `IOErrorEnum`. This is a specialized version of `Data.GI.Base.GError.catchGErrorJustDomain`.
catchIOErrorEnum ::
    IO a ->
    (IOErrorEnum -> GErrorMessage -> IO a) ->
    IO a
catchIOErrorEnum :: IO a -> (IOErrorEnum -> Text -> IO a) -> IO a
catchIOErrorEnum = IO a -> (IOErrorEnum -> Text -> IO a) -> IO a
forall err a.
GErrorClass err =>
IO a -> (err -> Text -> IO a) -> IO a
catchGErrorJustDomain

-- | Handle exceptions of type `IOErrorEnum`. This is a specialized version of `Data.GI.Base.GError.handleGErrorJustDomain`.
handleIOErrorEnum ::
    (IOErrorEnum -> GErrorMessage -> IO a) ->
    IO a ->
    IO a
handleIOErrorEnum :: (IOErrorEnum -> Text -> IO a) -> IO a -> IO a
handleIOErrorEnum = (IOErrorEnum -> Text -> IO a) -> IO a -> IO a
forall err a.
GErrorClass err =>
(err -> Text -> IO a) -> IO a -> IO a
handleGErrorJustDomain

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

foreign import ccall "g_io_error_enum_get_type" c_g_io_error_enum_get_type :: 
    IO GType

instance B.Types.TypedObject IOErrorEnum where
    glibType :: IO GType
glibType = IO GType
c_g_io_error_enum_get_type

instance B.Types.BoxedEnum IOErrorEnum

-- Enum FilesystemPreviewType
-- | Indicates a hint from the file system whether files should be
-- previewed in a file manager. Returned as the value of the key
-- 'GI.Gio.Constants.FILE_ATTRIBUTE_FILESYSTEM_USE_PREVIEW'.
data FilesystemPreviewType = 
      FilesystemPreviewTypeIfAlways
    -- ^ Only preview files if user has explicitly requested it.
    | FilesystemPreviewTypeIfLocal
    -- ^ Preview files if user has requested preview of \"local\" files.
    | FilesystemPreviewTypeNever
    -- ^ Never preview files.
    | AnotherFilesystemPreviewType Int
    -- ^ Catch-all for unknown values
    deriving (Int -> FilesystemPreviewType -> ShowS
[FilesystemPreviewType] -> ShowS
FilesystemPreviewType -> String
(Int -> FilesystemPreviewType -> ShowS)
-> (FilesystemPreviewType -> String)
-> ([FilesystemPreviewType] -> ShowS)
-> Show FilesystemPreviewType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [FilesystemPreviewType] -> ShowS
$cshowList :: [FilesystemPreviewType] -> ShowS
show :: FilesystemPreviewType -> String
$cshow :: FilesystemPreviewType -> String
showsPrec :: Int -> FilesystemPreviewType -> ShowS
$cshowsPrec :: Int -> FilesystemPreviewType -> ShowS
Show, FilesystemPreviewType -> FilesystemPreviewType -> Bool
(FilesystemPreviewType -> FilesystemPreviewType -> Bool)
-> (FilesystemPreviewType -> FilesystemPreviewType -> Bool)
-> Eq FilesystemPreviewType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: FilesystemPreviewType -> FilesystemPreviewType -> Bool
$c/= :: FilesystemPreviewType -> FilesystemPreviewType -> Bool
== :: FilesystemPreviewType -> FilesystemPreviewType -> Bool
$c== :: FilesystemPreviewType -> FilesystemPreviewType -> Bool
Eq)

instance P.Enum FilesystemPreviewType where
    fromEnum :: FilesystemPreviewType -> Int
fromEnum FilesystemPreviewType
FilesystemPreviewTypeIfAlways = Int
0
    fromEnum FilesystemPreviewType
FilesystemPreviewTypeIfLocal = Int
1
    fromEnum FilesystemPreviewType
FilesystemPreviewTypeNever = Int
2
    fromEnum (AnotherFilesystemPreviewType Int
k) = Int
k

    toEnum :: Int -> FilesystemPreviewType
toEnum Int
0 = FilesystemPreviewType
FilesystemPreviewTypeIfAlways
    toEnum Int
1 = FilesystemPreviewType
FilesystemPreviewTypeIfLocal
    toEnum Int
2 = FilesystemPreviewType
FilesystemPreviewTypeNever
    toEnum Int
k = Int -> FilesystemPreviewType
AnotherFilesystemPreviewType Int
k

instance P.Ord FilesystemPreviewType where
    compare :: FilesystemPreviewType -> FilesystemPreviewType -> Ordering
compare FilesystemPreviewType
a FilesystemPreviewType
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (FilesystemPreviewType -> Int
forall a. Enum a => a -> Int
P.fromEnum FilesystemPreviewType
a) (FilesystemPreviewType -> Int
forall a. Enum a => a -> Int
P.fromEnum FilesystemPreviewType
b)

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

foreign import ccall "g_filesystem_preview_type_get_type" c_g_filesystem_preview_type_get_type :: 
    IO GType

instance B.Types.TypedObject FilesystemPreviewType where
    glibType :: IO GType
glibType = IO GType
c_g_filesystem_preview_type_get_type

instance B.Types.BoxedEnum FilesystemPreviewType

-- Enum FileType
-- | Indicates the file\'s on-disk type.
-- 
-- On Windows systems a file will never have 'GI.Gio.Enums.FileTypeSymbolicLink' type;
-- use t'GI.Gio.Objects.FileInfo.FileInfo' and 'GI.Gio.Constants.FILE_ATTRIBUTE_STANDARD_IS_SYMLINK' to determine
-- whether a file is a symlink or not. This is due to the fact that NTFS does
-- not have a single filesystem object type for symbolic links - it has
-- files that symlink to files, and directories that symlink to directories.
-- t'GI.Gio.Enums.FileType' enumeration cannot precisely represent this important distinction,
-- which is why all Windows symlinks will continue to be reported as
-- 'GI.Gio.Enums.FileTypeRegular' or 'GI.Gio.Enums.FileTypeDirectory'.
data FileType = 
      FileTypeUnknown
    -- ^ File\'s type is unknown.
    | FileTypeRegular
    -- ^ File handle represents a regular file.
    | FileTypeDirectory
    -- ^ File handle represents a directory.
    | FileTypeSymbolicLink
    -- ^ File handle represents a symbolic link
    --    (Unix systems).
    | FileTypeSpecial
    -- ^ File is a \"special\" file, such as a socket, fifo,
    --    block device, or character device.
    | FileTypeShortcut
    -- ^ File is a shortcut (Windows systems).
    | FileTypeMountable
    -- ^ File is a mountable location.
    | AnotherFileType Int
    -- ^ Catch-all for unknown values
    deriving (Int -> FileType -> ShowS
[FileType] -> ShowS
FileType -> String
(Int -> FileType -> ShowS)
-> (FileType -> String) -> ([FileType] -> ShowS) -> Show FileType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [FileType] -> ShowS
$cshowList :: [FileType] -> ShowS
show :: FileType -> String
$cshow :: FileType -> String
showsPrec :: Int -> FileType -> ShowS
$cshowsPrec :: Int -> FileType -> ShowS
Show, FileType -> FileType -> Bool
(FileType -> FileType -> Bool)
-> (FileType -> FileType -> Bool) -> Eq FileType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: FileType -> FileType -> Bool
$c/= :: FileType -> FileType -> Bool
== :: FileType -> FileType -> Bool
$c== :: FileType -> FileType -> Bool
Eq)

instance P.Enum FileType where
    fromEnum :: FileType -> Int
fromEnum FileType
FileTypeUnknown = Int
0
    fromEnum FileType
FileTypeRegular = Int
1
    fromEnum FileType
FileTypeDirectory = Int
2
    fromEnum FileType
FileTypeSymbolicLink = Int
3
    fromEnum FileType
FileTypeSpecial = Int
4
    fromEnum FileType
FileTypeShortcut = Int
5
    fromEnum FileType
FileTypeMountable = Int
6
    fromEnum (AnotherFileType Int
k) = Int
k

    toEnum :: Int -> FileType
toEnum Int
0 = FileType
FileTypeUnknown
    toEnum Int
1 = FileType
FileTypeRegular
    toEnum Int
2 = FileType
FileTypeDirectory
    toEnum Int
3 = FileType
FileTypeSymbolicLink
    toEnum Int
4 = FileType
FileTypeSpecial
    toEnum Int
5 = FileType
FileTypeShortcut
    toEnum Int
6 = FileType
FileTypeMountable
    toEnum Int
k = Int -> FileType
AnotherFileType Int
k

instance P.Ord FileType where
    compare :: FileType -> FileType -> Ordering
compare FileType
a FileType
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (FileType -> Int
forall a. Enum a => a -> Int
P.fromEnum FileType
a) (FileType -> Int
forall a. Enum a => a -> Int
P.fromEnum FileType
b)

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

foreign import ccall "g_file_type_get_type" c_g_file_type_get_type :: 
    IO GType

instance B.Types.TypedObject FileType where
    glibType :: IO GType
glibType = IO GType
c_g_file_type_get_type

instance B.Types.BoxedEnum FileType

-- Enum FileMonitorEvent
-- | Specifies what type of event a monitor event is.
data FileMonitorEvent = 
      FileMonitorEventChanged
    -- ^ a file changed.
    | FileMonitorEventChangesDoneHint
    -- ^ a hint that this was probably the last change in a set of changes.
    | FileMonitorEventDeleted
    -- ^ a file was deleted.
    | FileMonitorEventCreated
    -- ^ a file was created.
    | FileMonitorEventAttributeChanged
    -- ^ a file attribute was changed.
    | FileMonitorEventPreUnmount
    -- ^ the file location will soon be unmounted.
    | FileMonitorEventUnmounted
    -- ^ the file location was unmounted.
    | FileMonitorEventMoved
    -- ^ the file was moved -- only sent if the
    --   (deprecated) 'GI.Gio.Flags.FileMonitorFlagsSendMoved' flag is set
    | FileMonitorEventRenamed
    -- ^ the file was renamed within the
    --   current directory -- only sent if the 'GI.Gio.Flags.FileMonitorFlagsWatchMoves'
    --   flag is set.  Since: 2.46.
    | FileMonitorEventMovedIn
    -- ^ the file was moved into the
    --   monitored directory from another location -- only sent if the
    --   'GI.Gio.Flags.FileMonitorFlagsWatchMoves' flag is set.  Since: 2.46.
    | FileMonitorEventMovedOut
    -- ^ the file was moved out of the
    --   monitored directory to another location -- only sent if the
    --   'GI.Gio.Flags.FileMonitorFlagsWatchMoves' flag is set.  Since: 2.46
    | AnotherFileMonitorEvent Int
    -- ^ Catch-all for unknown values
    deriving (Int -> FileMonitorEvent -> ShowS
[FileMonitorEvent] -> ShowS
FileMonitorEvent -> String
(Int -> FileMonitorEvent -> ShowS)
-> (FileMonitorEvent -> String)
-> ([FileMonitorEvent] -> ShowS)
-> Show FileMonitorEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [FileMonitorEvent] -> ShowS
$cshowList :: [FileMonitorEvent] -> ShowS
show :: FileMonitorEvent -> String
$cshow :: FileMonitorEvent -> String
showsPrec :: Int -> FileMonitorEvent -> ShowS
$cshowsPrec :: Int -> FileMonitorEvent -> ShowS
Show, FileMonitorEvent -> FileMonitorEvent -> Bool
(FileMonitorEvent -> FileMonitorEvent -> Bool)
-> (FileMonitorEvent -> FileMonitorEvent -> Bool)
-> Eq FileMonitorEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: FileMonitorEvent -> FileMonitorEvent -> Bool
$c/= :: FileMonitorEvent -> FileMonitorEvent -> Bool
== :: FileMonitorEvent -> FileMonitorEvent -> Bool
$c== :: FileMonitorEvent -> FileMonitorEvent -> Bool
Eq)

instance P.Enum FileMonitorEvent where
    fromEnum :: FileMonitorEvent -> Int
fromEnum FileMonitorEvent
FileMonitorEventChanged = Int
0
    fromEnum FileMonitorEvent
FileMonitorEventChangesDoneHint = Int
1
    fromEnum FileMonitorEvent
FileMonitorEventDeleted = Int
2
    fromEnum FileMonitorEvent
FileMonitorEventCreated = Int
3
    fromEnum FileMonitorEvent
FileMonitorEventAttributeChanged = Int
4
    fromEnum FileMonitorEvent
FileMonitorEventPreUnmount = Int
5
    fromEnum FileMonitorEvent
FileMonitorEventUnmounted = Int
6
    fromEnum FileMonitorEvent
FileMonitorEventMoved = Int
7
    fromEnum FileMonitorEvent
FileMonitorEventRenamed = Int
8
    fromEnum FileMonitorEvent
FileMonitorEventMovedIn = Int
9
    fromEnum FileMonitorEvent
FileMonitorEventMovedOut = Int
10
    fromEnum (AnotherFileMonitorEvent Int
k) = Int
k

    toEnum :: Int -> FileMonitorEvent
toEnum Int
0 = FileMonitorEvent
FileMonitorEventChanged
    toEnum Int
1 = FileMonitorEvent
FileMonitorEventChangesDoneHint
    toEnum Int
2 = FileMonitorEvent
FileMonitorEventDeleted
    toEnum Int
3 = FileMonitorEvent
FileMonitorEventCreated
    toEnum Int
4 = FileMonitorEvent
FileMonitorEventAttributeChanged
    toEnum Int
5 = FileMonitorEvent
FileMonitorEventPreUnmount
    toEnum Int
6 = FileMonitorEvent
FileMonitorEventUnmounted
    toEnum Int
7 = FileMonitorEvent
FileMonitorEventMoved
    toEnum Int
8 = FileMonitorEvent
FileMonitorEventRenamed
    toEnum Int
9 = FileMonitorEvent
FileMonitorEventMovedIn
    toEnum Int
10 = FileMonitorEvent
FileMonitorEventMovedOut
    toEnum Int
k = Int -> FileMonitorEvent
AnotherFileMonitorEvent Int
k

instance P.Ord FileMonitorEvent where
    compare :: FileMonitorEvent -> FileMonitorEvent -> Ordering
compare FileMonitorEvent
a FileMonitorEvent
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (FileMonitorEvent -> Int
forall a. Enum a => a -> Int
P.fromEnum FileMonitorEvent
a) (FileMonitorEvent -> Int
forall a. Enum a => a -> Int
P.fromEnum FileMonitorEvent
b)

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

foreign import ccall "g_file_monitor_event_get_type" c_g_file_monitor_event_get_type :: 
    IO GType

instance B.Types.TypedObject FileMonitorEvent where
    glibType :: IO GType
glibType = IO GType
c_g_file_monitor_event_get_type

instance B.Types.BoxedEnum FileMonitorEvent

-- Enum FileAttributeType
-- | The data types for file attributes.
data FileAttributeType = 
      FileAttributeTypeInvalid
    -- ^ indicates an invalid or uninitalized type.
    | FileAttributeTypeString
    -- ^ a null terminated UTF8 string.
    | FileAttributeTypeByteString
    -- ^ a zero terminated string of non-zero bytes.
    | FileAttributeTypeBoolean
    -- ^ a boolean value.
    | FileAttributeTypeUint32
    -- ^ an unsigned 4-byte\/32-bit integer.
    | FileAttributeTypeInt32
    -- ^ a signed 4-byte\/32-bit integer.
    | FileAttributeTypeUint64
    -- ^ an unsigned 8-byte\/64-bit integer.
    | FileAttributeTypeInt64
    -- ^ a signed 8-byte\/64-bit integer.
    | FileAttributeTypeObject
    -- ^ a t'GI.GObject.Objects.Object.Object'.
    | FileAttributeTypeStringv
    -- ^ a 'P.Nothing' terminated char **. Since 2.22
    | AnotherFileAttributeType Int
    -- ^ Catch-all for unknown values
    deriving (Int -> FileAttributeType -> ShowS
[FileAttributeType] -> ShowS
FileAttributeType -> String
(Int -> FileAttributeType -> ShowS)
-> (FileAttributeType -> String)
-> ([FileAttributeType] -> ShowS)
-> Show FileAttributeType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [FileAttributeType] -> ShowS
$cshowList :: [FileAttributeType] -> ShowS
show :: FileAttributeType -> String
$cshow :: FileAttributeType -> String
showsPrec :: Int -> FileAttributeType -> ShowS
$cshowsPrec :: Int -> FileAttributeType -> ShowS
Show, FileAttributeType -> FileAttributeType -> Bool
(FileAttributeType -> FileAttributeType -> Bool)
-> (FileAttributeType -> FileAttributeType -> Bool)
-> Eq FileAttributeType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: FileAttributeType -> FileAttributeType -> Bool
$c/= :: FileAttributeType -> FileAttributeType -> Bool
== :: FileAttributeType -> FileAttributeType -> Bool
$c== :: FileAttributeType -> FileAttributeType -> Bool
Eq)

instance P.Enum FileAttributeType where
    fromEnum :: FileAttributeType -> Int
fromEnum FileAttributeType
FileAttributeTypeInvalid = Int
0
    fromEnum FileAttributeType
FileAttributeTypeString = Int
1
    fromEnum FileAttributeType
FileAttributeTypeByteString = Int
2
    fromEnum FileAttributeType
FileAttributeTypeBoolean = Int
3
    fromEnum FileAttributeType
FileAttributeTypeUint32 = Int
4
    fromEnum FileAttributeType
FileAttributeTypeInt32 = Int
5
    fromEnum FileAttributeType
FileAttributeTypeUint64 = Int
6
    fromEnum FileAttributeType
FileAttributeTypeInt64 = Int
7
    fromEnum FileAttributeType
FileAttributeTypeObject = Int
8
    fromEnum FileAttributeType
FileAttributeTypeStringv = Int
9
    fromEnum (AnotherFileAttributeType Int
k) = Int
k

    toEnum :: Int -> FileAttributeType
toEnum Int
0 = FileAttributeType
FileAttributeTypeInvalid
    toEnum Int
1 = FileAttributeType
FileAttributeTypeString
    toEnum Int
2 = FileAttributeType
FileAttributeTypeByteString
    toEnum Int
3 = FileAttributeType
FileAttributeTypeBoolean
    toEnum Int
4 = FileAttributeType
FileAttributeTypeUint32
    toEnum Int
5 = FileAttributeType
FileAttributeTypeInt32
    toEnum Int
6 = FileAttributeType
FileAttributeTypeUint64
    toEnum Int
7 = FileAttributeType
FileAttributeTypeInt64
    toEnum Int
8 = FileAttributeType
FileAttributeTypeObject
    toEnum Int
9 = FileAttributeType
FileAttributeTypeStringv
    toEnum Int
k = Int -> FileAttributeType
AnotherFileAttributeType Int
k

instance P.Ord FileAttributeType where
    compare :: FileAttributeType -> FileAttributeType -> Ordering
compare FileAttributeType
a FileAttributeType
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (FileAttributeType -> Int
forall a. Enum a => a -> Int
P.fromEnum FileAttributeType
a) (FileAttributeType -> Int
forall a. Enum a => a -> Int
P.fromEnum FileAttributeType
b)

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

foreign import ccall "g_file_attribute_type_get_type" c_g_file_attribute_type_get_type :: 
    IO GType

instance B.Types.TypedObject FileAttributeType where
    glibType :: IO GType
glibType = IO GType
c_g_file_attribute_type_get_type

instance B.Types.BoxedEnum FileAttributeType

-- Enum FileAttributeStatus
-- | Used by 'GI.Gio.Interfaces.File.fileSetAttributesFromInfo' when setting file attributes.
data FileAttributeStatus = 
      FileAttributeStatusUnset
    -- ^ Attribute value is unset (empty).
    | FileAttributeStatusSet
    -- ^ Attribute value is set.
    | FileAttributeStatusErrorSetting
    -- ^ Indicates an error in setting the value.
    | AnotherFileAttributeStatus Int
    -- ^ Catch-all for unknown values
    deriving (Int -> FileAttributeStatus -> ShowS
[FileAttributeStatus] -> ShowS
FileAttributeStatus -> String
(Int -> FileAttributeStatus -> ShowS)
-> (FileAttributeStatus -> String)
-> ([FileAttributeStatus] -> ShowS)
-> Show FileAttributeStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [FileAttributeStatus] -> ShowS
$cshowList :: [FileAttributeStatus] -> ShowS
show :: FileAttributeStatus -> String
$cshow :: FileAttributeStatus -> String
showsPrec :: Int -> FileAttributeStatus -> ShowS
$cshowsPrec :: Int -> FileAttributeStatus -> ShowS
Show, FileAttributeStatus -> FileAttributeStatus -> Bool
(FileAttributeStatus -> FileAttributeStatus -> Bool)
-> (FileAttributeStatus -> FileAttributeStatus -> Bool)
-> Eq FileAttributeStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: FileAttributeStatus -> FileAttributeStatus -> Bool
$c/= :: FileAttributeStatus -> FileAttributeStatus -> Bool
== :: FileAttributeStatus -> FileAttributeStatus -> Bool
$c== :: FileAttributeStatus -> FileAttributeStatus -> Bool
Eq)

instance P.Enum FileAttributeStatus where
    fromEnum :: FileAttributeStatus -> Int
fromEnum FileAttributeStatus
FileAttributeStatusUnset = Int
0
    fromEnum FileAttributeStatus
FileAttributeStatusSet = Int
1
    fromEnum FileAttributeStatus
FileAttributeStatusErrorSetting = Int
2
    fromEnum (AnotherFileAttributeStatus Int
k) = Int
k

    toEnum :: Int -> FileAttributeStatus
toEnum Int
0 = FileAttributeStatus
FileAttributeStatusUnset
    toEnum Int
1 = FileAttributeStatus
FileAttributeStatusSet
    toEnum Int
2 = FileAttributeStatus
FileAttributeStatusErrorSetting
    toEnum Int
k = Int -> FileAttributeStatus
AnotherFileAttributeStatus Int
k

instance P.Ord FileAttributeStatus where
    compare :: FileAttributeStatus -> FileAttributeStatus -> Ordering
compare FileAttributeStatus
a FileAttributeStatus
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (FileAttributeStatus -> Int
forall a. Enum a => a -> Int
P.fromEnum FileAttributeStatus
a) (FileAttributeStatus -> Int
forall a. Enum a => a -> Int
P.fromEnum FileAttributeStatus
b)

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

foreign import ccall "g_file_attribute_status_get_type" c_g_file_attribute_status_get_type :: 
    IO GType

instance B.Types.TypedObject FileAttributeStatus where
    glibType :: IO GType
glibType = IO GType
c_g_file_attribute_status_get_type

instance B.Types.BoxedEnum FileAttributeStatus

-- Enum EmblemOrigin
-- | GEmblemOrigin is used to add information about the origin of the emblem
-- to t'GI.Gio.Objects.Emblem.Emblem'.
-- 
-- /Since: 2.18/
data EmblemOrigin = 
      EmblemOriginUnknown
    -- ^ Emblem of unknown origin
    | EmblemOriginDevice
    -- ^ Emblem adds device-specific information
    | EmblemOriginLivemetadata
    -- ^ Emblem depicts live metadata, such as \"readonly\"
    | EmblemOriginTag
    -- ^ Emblem comes from a user-defined tag, e.g. set by nautilus (in the future)
    | AnotherEmblemOrigin Int
    -- ^ Catch-all for unknown values
    deriving (Int -> EmblemOrigin -> ShowS
[EmblemOrigin] -> ShowS
EmblemOrigin -> String
(Int -> EmblemOrigin -> ShowS)
-> (EmblemOrigin -> String)
-> ([EmblemOrigin] -> ShowS)
-> Show EmblemOrigin
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [EmblemOrigin] -> ShowS
$cshowList :: [EmblemOrigin] -> ShowS
show :: EmblemOrigin -> String
$cshow :: EmblemOrigin -> String
showsPrec :: Int -> EmblemOrigin -> ShowS
$cshowsPrec :: Int -> EmblemOrigin -> ShowS
Show, EmblemOrigin -> EmblemOrigin -> Bool
(EmblemOrigin -> EmblemOrigin -> Bool)
-> (EmblemOrigin -> EmblemOrigin -> Bool) -> Eq EmblemOrigin
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: EmblemOrigin -> EmblemOrigin -> Bool
$c/= :: EmblemOrigin -> EmblemOrigin -> Bool
== :: EmblemOrigin -> EmblemOrigin -> Bool
$c== :: EmblemOrigin -> EmblemOrigin -> Bool
Eq)

instance P.Enum EmblemOrigin where
    fromEnum :: EmblemOrigin -> Int
fromEnum EmblemOrigin
EmblemOriginUnknown = Int
0
    fromEnum EmblemOrigin
EmblemOriginDevice = Int
1
    fromEnum EmblemOrigin
EmblemOriginLivemetadata = Int
2
    fromEnum EmblemOrigin
EmblemOriginTag = Int
3
    fromEnum (AnotherEmblemOrigin Int
k) = Int
k

    toEnum :: Int -> EmblemOrigin
toEnum Int
0 = EmblemOrigin
EmblemOriginUnknown
    toEnum Int
1 = EmblemOrigin
EmblemOriginDevice
    toEnum Int
2 = EmblemOrigin
EmblemOriginLivemetadata
    toEnum Int
3 = EmblemOrigin
EmblemOriginTag
    toEnum Int
k = Int -> EmblemOrigin
AnotherEmblemOrigin Int
k

instance P.Ord EmblemOrigin where
    compare :: EmblemOrigin -> EmblemOrigin -> Ordering
compare EmblemOrigin
a EmblemOrigin
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (EmblemOrigin -> Int
forall a. Enum a => a -> Int
P.fromEnum EmblemOrigin
a) (EmblemOrigin -> Int
forall a. Enum a => a -> Int
P.fromEnum EmblemOrigin
b)

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

foreign import ccall "g_emblem_origin_get_type" c_g_emblem_origin_get_type :: 
    IO GType

instance B.Types.TypedObject EmblemOrigin where
    glibType :: IO GType
glibType = IO GType
c_g_emblem_origin_get_type

instance B.Types.BoxedEnum EmblemOrigin

-- Enum DriveStartStopType
-- | Enumeration describing how a drive can be started\/stopped.
-- 
-- /Since: 2.22/
data DriveStartStopType = 
      DriveStartStopTypeUnknown
    -- ^ Unknown or drive doesn\'t support
    --    start\/stop.
    | DriveStartStopTypeShutdown
    -- ^ The stop method will physically
    --    shut down the drive and e.g. power down the port the drive is
    --    attached to.
    | DriveStartStopTypeNetwork
    -- ^ The start\/stop methods are used
    --    for connecting\/disconnect to the drive over the network.
    | DriveStartStopTypeMultidisk
    -- ^ The start\/stop methods will
    --    assemble\/disassemble a virtual drive from several physical
    --    drives.
    | DriveStartStopTypePassword
    -- ^ The start\/stop methods will
    --    unlock\/lock the disk (for example using the ATA \<quote>SECURITY
    --    UNLOCK DEVICE\<\/quote> command)
    | AnotherDriveStartStopType Int
    -- ^ Catch-all for unknown values
    deriving (Int -> DriveStartStopType -> ShowS
[DriveStartStopType] -> ShowS
DriveStartStopType -> String
(Int -> DriveStartStopType -> ShowS)
-> (DriveStartStopType -> String)
-> ([DriveStartStopType] -> ShowS)
-> Show DriveStartStopType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DriveStartStopType] -> ShowS
$cshowList :: [DriveStartStopType] -> ShowS
show :: DriveStartStopType -> String
$cshow :: DriveStartStopType -> String
showsPrec :: Int -> DriveStartStopType -> ShowS
$cshowsPrec :: Int -> DriveStartStopType -> ShowS
Show, DriveStartStopType -> DriveStartStopType -> Bool
(DriveStartStopType -> DriveStartStopType -> Bool)
-> (DriveStartStopType -> DriveStartStopType -> Bool)
-> Eq DriveStartStopType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DriveStartStopType -> DriveStartStopType -> Bool
$c/= :: DriveStartStopType -> DriveStartStopType -> Bool
== :: DriveStartStopType -> DriveStartStopType -> Bool
$c== :: DriveStartStopType -> DriveStartStopType -> Bool
Eq)

instance P.Enum DriveStartStopType where
    fromEnum :: DriveStartStopType -> Int
fromEnum DriveStartStopType
DriveStartStopTypeUnknown = Int
0
    fromEnum DriveStartStopType
DriveStartStopTypeShutdown = Int
1
    fromEnum DriveStartStopType
DriveStartStopTypeNetwork = Int
2
    fromEnum DriveStartStopType
DriveStartStopTypeMultidisk = Int
3
    fromEnum DriveStartStopType
DriveStartStopTypePassword = Int
4
    fromEnum (AnotherDriveStartStopType Int
k) = Int
k

    toEnum :: Int -> DriveStartStopType
toEnum Int
0 = DriveStartStopType
DriveStartStopTypeUnknown
    toEnum Int
1 = DriveStartStopType
DriveStartStopTypeShutdown
    toEnum Int
2 = DriveStartStopType
DriveStartStopTypeNetwork
    toEnum Int
3 = DriveStartStopType
DriveStartStopTypeMultidisk
    toEnum Int
4 = DriveStartStopType
DriveStartStopTypePassword
    toEnum Int
k = Int -> DriveStartStopType
AnotherDriveStartStopType Int
k

instance P.Ord DriveStartStopType where
    compare :: DriveStartStopType -> DriveStartStopType -> Ordering
compare DriveStartStopType
a DriveStartStopType
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (DriveStartStopType -> Int
forall a. Enum a => a -> Int
P.fromEnum DriveStartStopType
a) (DriveStartStopType -> Int
forall a. Enum a => a -> Int
P.fromEnum DriveStartStopType
b)

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

foreign import ccall "g_drive_start_stop_type_get_type" c_g_drive_start_stop_type_get_type :: 
    IO GType

instance B.Types.TypedObject DriveStartStopType where
    glibType :: IO GType
glibType = IO GType
c_g_drive_start_stop_type_get_type

instance B.Types.BoxedEnum DriveStartStopType

-- Enum DataStreamNewlineType
-- | t'GI.Gio.Enums.DataStreamNewlineType' is used when checking for or setting the line endings for a given file.
data DataStreamNewlineType = 
      DataStreamNewlineTypeLf
    -- ^ Selects \"LF\" line endings, common on most modern UNIX platforms.
    | DataStreamNewlineTypeCr
    -- ^ Selects \"CR\" line endings.
    | DataStreamNewlineTypeCrLf
    -- ^ Selects \"CR, LF\" line ending, common on Microsoft Windows.
    | DataStreamNewlineTypeAny
    -- ^ Automatically try to handle any line ending type.
    | AnotherDataStreamNewlineType Int
    -- ^ Catch-all for unknown values
    deriving (Int -> DataStreamNewlineType -> ShowS
[DataStreamNewlineType] -> ShowS
DataStreamNewlineType -> String
(Int -> DataStreamNewlineType -> ShowS)
-> (DataStreamNewlineType -> String)
-> ([DataStreamNewlineType] -> ShowS)
-> Show DataStreamNewlineType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DataStreamNewlineType] -> ShowS
$cshowList :: [DataStreamNewlineType] -> ShowS
show :: DataStreamNewlineType -> String
$cshow :: DataStreamNewlineType -> String
showsPrec :: Int -> DataStreamNewlineType -> ShowS
$cshowsPrec :: Int -> DataStreamNewlineType -> ShowS
Show, DataStreamNewlineType -> DataStreamNewlineType -> Bool
(DataStreamNewlineType -> DataStreamNewlineType -> Bool)
-> (DataStreamNewlineType -> DataStreamNewlineType -> Bool)
-> Eq DataStreamNewlineType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DataStreamNewlineType -> DataStreamNewlineType -> Bool
$c/= :: DataStreamNewlineType -> DataStreamNewlineType -> Bool
== :: DataStreamNewlineType -> DataStreamNewlineType -> Bool
$c== :: DataStreamNewlineType -> DataStreamNewlineType -> Bool
Eq)

instance P.Enum DataStreamNewlineType where
    fromEnum :: DataStreamNewlineType -> Int
fromEnum DataStreamNewlineType
DataStreamNewlineTypeLf = Int
0
    fromEnum DataStreamNewlineType
DataStreamNewlineTypeCr = Int
1
    fromEnum DataStreamNewlineType
DataStreamNewlineTypeCrLf = Int
2
    fromEnum DataStreamNewlineType
DataStreamNewlineTypeAny = Int
3
    fromEnum (AnotherDataStreamNewlineType Int
k) = Int
k

    toEnum :: Int -> DataStreamNewlineType
toEnum Int
0 = DataStreamNewlineType
DataStreamNewlineTypeLf
    toEnum Int
1 = DataStreamNewlineType
DataStreamNewlineTypeCr
    toEnum Int
2 = DataStreamNewlineType
DataStreamNewlineTypeCrLf
    toEnum Int
3 = DataStreamNewlineType
DataStreamNewlineTypeAny
    toEnum Int
k = Int -> DataStreamNewlineType
AnotherDataStreamNewlineType Int
k

instance P.Ord DataStreamNewlineType where
    compare :: DataStreamNewlineType -> DataStreamNewlineType -> Ordering
compare DataStreamNewlineType
a DataStreamNewlineType
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (DataStreamNewlineType -> Int
forall a. Enum a => a -> Int
P.fromEnum DataStreamNewlineType
a) (DataStreamNewlineType -> Int
forall a. Enum a => a -> Int
P.fromEnum DataStreamNewlineType
b)

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

foreign import ccall "g_data_stream_newline_type_get_type" c_g_data_stream_newline_type_get_type :: 
    IO GType

instance B.Types.TypedObject DataStreamNewlineType where
    glibType :: IO GType
glibType = IO GType
c_g_data_stream_newline_type_get_type

instance B.Types.BoxedEnum DataStreamNewlineType

-- Enum DataStreamByteOrder
-- | t'GI.Gio.Enums.DataStreamByteOrder' is used to ensure proper endianness of streaming data sources
-- across various machine architectures.
data DataStreamByteOrder = 
      DataStreamByteOrderBigEndian
    -- ^ Selects Big Endian byte order.
    | DataStreamByteOrderLittleEndian
    -- ^ Selects Little Endian byte order.
    | DataStreamByteOrderHostEndian
    -- ^ Selects endianness based on host machine\'s architecture.
    | AnotherDataStreamByteOrder Int
    -- ^ Catch-all for unknown values
    deriving (Int -> DataStreamByteOrder -> ShowS
[DataStreamByteOrder] -> ShowS
DataStreamByteOrder -> String
(Int -> DataStreamByteOrder -> ShowS)
-> (DataStreamByteOrder -> String)
-> ([DataStreamByteOrder] -> ShowS)
-> Show DataStreamByteOrder
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DataStreamByteOrder] -> ShowS
$cshowList :: [DataStreamByteOrder] -> ShowS
show :: DataStreamByteOrder -> String
$cshow :: DataStreamByteOrder -> String
showsPrec :: Int -> DataStreamByteOrder -> ShowS
$cshowsPrec :: Int -> DataStreamByteOrder -> ShowS
Show, DataStreamByteOrder -> DataStreamByteOrder -> Bool
(DataStreamByteOrder -> DataStreamByteOrder -> Bool)
-> (DataStreamByteOrder -> DataStreamByteOrder -> Bool)
-> Eq DataStreamByteOrder
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DataStreamByteOrder -> DataStreamByteOrder -> Bool
$c/= :: DataStreamByteOrder -> DataStreamByteOrder -> Bool
== :: DataStreamByteOrder -> DataStreamByteOrder -> Bool
$c== :: DataStreamByteOrder -> DataStreamByteOrder -> Bool
Eq)

instance P.Enum DataStreamByteOrder where
    fromEnum :: DataStreamByteOrder -> Int
fromEnum DataStreamByteOrder
DataStreamByteOrderBigEndian = Int
0
    fromEnum DataStreamByteOrder
DataStreamByteOrderLittleEndian = Int
1
    fromEnum DataStreamByteOrder
DataStreamByteOrderHostEndian = Int
2
    fromEnum (AnotherDataStreamByteOrder Int
k) = Int
k

    toEnum :: Int -> DataStreamByteOrder
toEnum Int
0 = DataStreamByteOrder
DataStreamByteOrderBigEndian
    toEnum Int
1 = DataStreamByteOrder
DataStreamByteOrderLittleEndian
    toEnum Int
2 = DataStreamByteOrder
DataStreamByteOrderHostEndian
    toEnum Int
k = Int -> DataStreamByteOrder
AnotherDataStreamByteOrder Int
k

instance P.Ord DataStreamByteOrder where
    compare :: DataStreamByteOrder -> DataStreamByteOrder -> Ordering
compare DataStreamByteOrder
a DataStreamByteOrder
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (DataStreamByteOrder -> Int
forall a. Enum a => a -> Int
P.fromEnum DataStreamByteOrder
a) (DataStreamByteOrder -> Int
forall a. Enum a => a -> Int
P.fromEnum DataStreamByteOrder
b)

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

foreign import ccall "g_data_stream_byte_order_get_type" c_g_data_stream_byte_order_get_type :: 
    IO GType

instance B.Types.TypedObject DataStreamByteOrder where
    glibType :: IO GType
glibType = IO GType
c_g_data_stream_byte_order_get_type

instance B.Types.BoxedEnum DataStreamByteOrder

-- Enum DBusMessageType
-- | Message types used in t'GI.Gio.Objects.DBusMessage.DBusMessage'.
-- 
-- /Since: 2.26/
data DBusMessageType = 
      DBusMessageTypeInvalid
    -- ^ Message is of invalid type.
    | DBusMessageTypeMethodCall
    -- ^ Method call.
    | DBusMessageTypeMethodReturn
    -- ^ Method reply.
    | DBusMessageTypeError
    -- ^ Error reply.
    | DBusMessageTypeSignal
    -- ^ Signal emission.
    | AnotherDBusMessageType Int
    -- ^ Catch-all for unknown values
    deriving (Int -> DBusMessageType -> ShowS
[DBusMessageType] -> ShowS
DBusMessageType -> String
(Int -> DBusMessageType -> ShowS)
-> (DBusMessageType -> String)
-> ([DBusMessageType] -> ShowS)
-> Show DBusMessageType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DBusMessageType] -> ShowS
$cshowList :: [DBusMessageType] -> ShowS
show :: DBusMessageType -> String
$cshow :: DBusMessageType -> String
showsPrec :: Int -> DBusMessageType -> ShowS
$cshowsPrec :: Int -> DBusMessageType -> ShowS
Show, DBusMessageType -> DBusMessageType -> Bool
(DBusMessageType -> DBusMessageType -> Bool)
-> (DBusMessageType -> DBusMessageType -> Bool)
-> Eq DBusMessageType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DBusMessageType -> DBusMessageType -> Bool
$c/= :: DBusMessageType -> DBusMessageType -> Bool
== :: DBusMessageType -> DBusMessageType -> Bool
$c== :: DBusMessageType -> DBusMessageType -> Bool
Eq)

instance P.Enum DBusMessageType where
    fromEnum :: DBusMessageType -> Int
fromEnum DBusMessageType
DBusMessageTypeInvalid = Int
0
    fromEnum DBusMessageType
DBusMessageTypeMethodCall = Int
1
    fromEnum DBusMessageType
DBusMessageTypeMethodReturn = Int
2
    fromEnum DBusMessageType
DBusMessageTypeError = Int
3
    fromEnum DBusMessageType
DBusMessageTypeSignal = Int
4
    fromEnum (AnotherDBusMessageType Int
k) = Int
k

    toEnum :: Int -> DBusMessageType
toEnum Int
0 = DBusMessageType
DBusMessageTypeInvalid
    toEnum Int
1 = DBusMessageType
DBusMessageTypeMethodCall
    toEnum Int
2 = DBusMessageType
DBusMessageTypeMethodReturn
    toEnum Int
3 = DBusMessageType
DBusMessageTypeError
    toEnum Int
4 = DBusMessageType
DBusMessageTypeSignal
    toEnum Int
k = Int -> DBusMessageType
AnotherDBusMessageType Int
k

instance P.Ord DBusMessageType where
    compare :: DBusMessageType -> DBusMessageType -> Ordering
compare DBusMessageType
a DBusMessageType
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (DBusMessageType -> Int
forall a. Enum a => a -> Int
P.fromEnum DBusMessageType
a) (DBusMessageType -> Int
forall a. Enum a => a -> Int
P.fromEnum DBusMessageType
b)

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

foreign import ccall "g_dbus_message_type_get_type" c_g_dbus_message_type_get_type :: 
    IO GType

instance B.Types.TypedObject DBusMessageType where
    glibType :: IO GType
glibType = IO GType
c_g_dbus_message_type_get_type

instance B.Types.BoxedEnum DBusMessageType

-- Enum DBusMessageHeaderField
-- | Header fields used in t'GI.Gio.Objects.DBusMessage.DBusMessage'.
-- 
-- /Since: 2.26/
data DBusMessageHeaderField = 
      DBusMessageHeaderFieldInvalid
    -- ^ Not a valid header field.
    | DBusMessageHeaderFieldPath
    -- ^ The object path.
    | DBusMessageHeaderFieldInterface
    -- ^ The interface name.
    | DBusMessageHeaderFieldMember
    -- ^ The method or signal name.
    | DBusMessageHeaderFieldErrorName
    -- ^ The name of the error that occurred.
    | DBusMessageHeaderFieldReplySerial
    -- ^ The serial number the message is a reply to.
    | DBusMessageHeaderFieldDestination
    -- ^ The name the message is intended for.
    | DBusMessageHeaderFieldSender
    -- ^ Unique name of the sender of the message (filled in by the bus).
    | DBusMessageHeaderFieldSignature
    -- ^ The signature of the message body.
    | DBusMessageHeaderFieldNumUnixFds
    -- ^ The number of UNIX file descriptors that accompany the message.
    | AnotherDBusMessageHeaderField Int
    -- ^ Catch-all for unknown values
    deriving (Int -> DBusMessageHeaderField -> ShowS
[DBusMessageHeaderField] -> ShowS
DBusMessageHeaderField -> String
(Int -> DBusMessageHeaderField -> ShowS)
-> (DBusMessageHeaderField -> String)
-> ([DBusMessageHeaderField] -> ShowS)
-> Show DBusMessageHeaderField
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DBusMessageHeaderField] -> ShowS
$cshowList :: [DBusMessageHeaderField] -> ShowS
show :: DBusMessageHeaderField -> String
$cshow :: DBusMessageHeaderField -> String
showsPrec :: Int -> DBusMessageHeaderField -> ShowS
$cshowsPrec :: Int -> DBusMessageHeaderField -> ShowS
Show, DBusMessageHeaderField -> DBusMessageHeaderField -> Bool
(DBusMessageHeaderField -> DBusMessageHeaderField -> Bool)
-> (DBusMessageHeaderField -> DBusMessageHeaderField -> Bool)
-> Eq DBusMessageHeaderField
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DBusMessageHeaderField -> DBusMessageHeaderField -> Bool
$c/= :: DBusMessageHeaderField -> DBusMessageHeaderField -> Bool
== :: DBusMessageHeaderField -> DBusMessageHeaderField -> Bool
$c== :: DBusMessageHeaderField -> DBusMessageHeaderField -> Bool
Eq)

instance P.Enum DBusMessageHeaderField where
    fromEnum :: DBusMessageHeaderField -> Int
fromEnum DBusMessageHeaderField
DBusMessageHeaderFieldInvalid = Int
0
    fromEnum DBusMessageHeaderField
DBusMessageHeaderFieldPath = Int
1
    fromEnum DBusMessageHeaderField
DBusMessageHeaderFieldInterface = Int
2
    fromEnum DBusMessageHeaderField
DBusMessageHeaderFieldMember = Int
3
    fromEnum DBusMessageHeaderField
DBusMessageHeaderFieldErrorName = Int
4
    fromEnum DBusMessageHeaderField
DBusMessageHeaderFieldReplySerial = Int
5
    fromEnum DBusMessageHeaderField
DBusMessageHeaderFieldDestination = Int
6
    fromEnum DBusMessageHeaderField
DBusMessageHeaderFieldSender = Int
7
    fromEnum DBusMessageHeaderField
DBusMessageHeaderFieldSignature = Int
8
    fromEnum DBusMessageHeaderField
DBusMessageHeaderFieldNumUnixFds = Int
9
    fromEnum (AnotherDBusMessageHeaderField Int
k) = Int
k

    toEnum :: Int -> DBusMessageHeaderField
toEnum Int
0 = DBusMessageHeaderField
DBusMessageHeaderFieldInvalid
    toEnum Int
1 = DBusMessageHeaderField
DBusMessageHeaderFieldPath
    toEnum Int
2 = DBusMessageHeaderField
DBusMessageHeaderFieldInterface
    toEnum Int
3 = DBusMessageHeaderField
DBusMessageHeaderFieldMember
    toEnum Int
4 = DBusMessageHeaderField
DBusMessageHeaderFieldErrorName
    toEnum Int
5 = DBusMessageHeaderField
DBusMessageHeaderFieldReplySerial
    toEnum Int
6 = DBusMessageHeaderField
DBusMessageHeaderFieldDestination
    toEnum Int
7 = DBusMessageHeaderField
DBusMessageHeaderFieldSender
    toEnum Int
8 = DBusMessageHeaderField
DBusMessageHeaderFieldSignature
    toEnum Int
9 = DBusMessageHeaderField
DBusMessageHeaderFieldNumUnixFds
    toEnum Int
k = Int -> DBusMessageHeaderField
AnotherDBusMessageHeaderField Int
k

instance P.Ord DBusMessageHeaderField where
    compare :: DBusMessageHeaderField -> DBusMessageHeaderField -> Ordering
compare DBusMessageHeaderField
a DBusMessageHeaderField
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (DBusMessageHeaderField -> Int
forall a. Enum a => a -> Int
P.fromEnum DBusMessageHeaderField
a) (DBusMessageHeaderField -> Int
forall a. Enum a => a -> Int
P.fromEnum DBusMessageHeaderField
b)

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

foreign import ccall "g_dbus_message_header_field_get_type" c_g_dbus_message_header_field_get_type :: 
    IO GType

instance B.Types.TypedObject DBusMessageHeaderField where
    glibType :: IO GType
glibType = IO GType
c_g_dbus_message_header_field_get_type

instance B.Types.BoxedEnum DBusMessageHeaderField

-- Enum DBusMessageByteOrder
-- | Enumeration used to describe the byte order of a D-Bus message.
-- 
-- /Since: 2.26/
data DBusMessageByteOrder = 
      DBusMessageByteOrderBigEndian
    -- ^ The byte order is big endian.
    | DBusMessageByteOrderLittleEndian
    -- ^ The byte order is little endian.
    | AnotherDBusMessageByteOrder Int
    -- ^ Catch-all for unknown values
    deriving (Int -> DBusMessageByteOrder -> ShowS
[DBusMessageByteOrder] -> ShowS
DBusMessageByteOrder -> String
(Int -> DBusMessageByteOrder -> ShowS)
-> (DBusMessageByteOrder -> String)
-> ([DBusMessageByteOrder] -> ShowS)
-> Show DBusMessageByteOrder
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DBusMessageByteOrder] -> ShowS
$cshowList :: [DBusMessageByteOrder] -> ShowS
show :: DBusMessageByteOrder -> String
$cshow :: DBusMessageByteOrder -> String
showsPrec :: Int -> DBusMessageByteOrder -> ShowS
$cshowsPrec :: Int -> DBusMessageByteOrder -> ShowS
Show, DBusMessageByteOrder -> DBusMessageByteOrder -> Bool
(DBusMessageByteOrder -> DBusMessageByteOrder -> Bool)
-> (DBusMessageByteOrder -> DBusMessageByteOrder -> Bool)
-> Eq DBusMessageByteOrder
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DBusMessageByteOrder -> DBusMessageByteOrder -> Bool
$c/= :: DBusMessageByteOrder -> DBusMessageByteOrder -> Bool
== :: DBusMessageByteOrder -> DBusMessageByteOrder -> Bool
$c== :: DBusMessageByteOrder -> DBusMessageByteOrder -> Bool
Eq)

instance P.Enum DBusMessageByteOrder where
    fromEnum :: DBusMessageByteOrder -> Int
fromEnum DBusMessageByteOrder
DBusMessageByteOrderBigEndian = Int
66
    fromEnum DBusMessageByteOrder
DBusMessageByteOrderLittleEndian = Int
108
    fromEnum (AnotherDBusMessageByteOrder Int
k) = Int
k

    toEnum :: Int -> DBusMessageByteOrder
toEnum Int
66 = DBusMessageByteOrder
DBusMessageByteOrderBigEndian
    toEnum Int
108 = DBusMessageByteOrder
DBusMessageByteOrderLittleEndian
    toEnum Int
k = Int -> DBusMessageByteOrder
AnotherDBusMessageByteOrder Int
k

instance P.Ord DBusMessageByteOrder where
    compare :: DBusMessageByteOrder -> DBusMessageByteOrder -> Ordering
compare DBusMessageByteOrder
a DBusMessageByteOrder
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (DBusMessageByteOrder -> Int
forall a. Enum a => a -> Int
P.fromEnum DBusMessageByteOrder
a) (DBusMessageByteOrder -> Int
forall a. Enum a => a -> Int
P.fromEnum DBusMessageByteOrder
b)

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

foreign import ccall "g_dbus_message_byte_order_get_type" c_g_dbus_message_byte_order_get_type :: 
    IO GType

instance B.Types.TypedObject DBusMessageByteOrder where
    glibType :: IO GType
glibType = IO GType
c_g_dbus_message_byte_order_get_type

instance B.Types.BoxedEnum DBusMessageByteOrder

-- Enum DBusError
-- | Error codes for the @/G_DBUS_ERROR/@ error domain.
-- 
-- /Since: 2.26/
data DBusError = 
      DBusErrorFailed
    -- ^ A generic error; \"something went wrong\" - see the error message for
    -- more.
    | DBusErrorNoMemory
    -- ^ There was not enough memory to complete an operation.
    | DBusErrorServiceUnknown
    -- ^ The bus doesn\'t know how to launch a service to supply the bus name
    -- you wanted.
    | DBusErrorNameHasNoOwner
    -- ^ The bus name you referenced doesn\'t exist (i.e. no application owns
    -- it).
    | DBusErrorNoReply
    -- ^ No reply to a message expecting one, usually means a timeout occurred.
    | DBusErrorIoError
    -- ^ Something went wrong reading or writing to a socket, for example.
    | DBusErrorBadAddress
    -- ^ A D-Bus bus address was malformed.
    | DBusErrorNotSupported
    -- ^ Requested operation isn\'t supported (like ENOSYS on UNIX).
    | DBusErrorLimitsExceeded
    -- ^ Some limited resource is exhausted.
    | DBusErrorAccessDenied
    -- ^ Security restrictions don\'t allow doing what you\'re trying to do.
    | DBusErrorAuthFailed
    -- ^ Authentication didn\'t work.
    | DBusErrorNoServer
    -- ^ Unable to connect to server (probably caused by ECONNREFUSED on a
    -- socket).
    | DBusErrorTimeout
    -- ^ Certain timeout errors, possibly ETIMEDOUT on a socket.  Note that
    -- 'GI.Gio.Enums.DBusErrorNoReply' is used for message reply timeouts. Warning:
    -- this is confusingly-named given that 'GI.Gio.Enums.DBusErrorTimedOut' also
    -- exists. We can\'t fix it for compatibility reasons so just be
    -- careful.
    | DBusErrorNoNetwork
    -- ^ No network access (probably ENETUNREACH on a socket).
    | DBusErrorAddressInUse
    -- ^ Can\'t bind a socket since its address is in use (i.e. EADDRINUSE).
    | DBusErrorDisconnected
    -- ^ The connection is disconnected and you\'re trying to use it.
    | DBusErrorInvalidArgs
    -- ^ Invalid arguments passed to a method call.
    | DBusErrorFileNotFound
    -- ^ Missing file.
    | DBusErrorFileExists
    -- ^ Existing file and the operation you\'re using does not silently overwrite.
    | DBusErrorUnknownMethod
    -- ^ Method name you invoked isn\'t known by the object you invoked it on.
    | DBusErrorTimedOut
    -- ^ Certain timeout errors, e.g. while starting a service. Warning: this is
    -- confusingly-named given that 'GI.Gio.Enums.DBusErrorTimeout' also exists. We
    -- can\'t fix it for compatibility reasons so just be careful.
    | DBusErrorMatchRuleNotFound
    -- ^ Tried to remove or modify a match rule that didn\'t exist.
    | DBusErrorMatchRuleInvalid
    -- ^ The match rule isn\'t syntactically valid.
    | DBusErrorSpawnExecFailed
    -- ^ While starting a new process, the @/exec()/@ call failed.
    | DBusErrorSpawnForkFailed
    -- ^ While starting a new process, the @/fork()/@ call failed.
    | DBusErrorSpawnChildExited
    -- ^ While starting a new process, the child exited with a status code.
    | DBusErrorSpawnChildSignaled
    -- ^ While starting a new process, the child exited on a signal.
    | DBusErrorSpawnFailed
    -- ^ While starting a new process, something went wrong.
    | DBusErrorSpawnSetupFailed
    -- ^ We failed to setup the environment correctly.
    | DBusErrorSpawnConfigInvalid
    -- ^ We failed to setup the config parser correctly.
    | DBusErrorSpawnServiceInvalid
    -- ^ Bus name was not valid.
    | DBusErrorSpawnServiceNotFound
    -- ^ Service file not found in system-services directory.
    | DBusErrorSpawnPermissionsInvalid
    -- ^ Permissions are incorrect on the setuid helper.
    | DBusErrorSpawnFileInvalid
    -- ^ Service file invalid (Name, User or Exec missing).
    | DBusErrorSpawnNoMemory
    -- ^ Tried to get a UNIX process ID and it wasn\'t available.
    | DBusErrorUnixProcessIdUnknown
    -- ^ Tried to get a UNIX process ID and it wasn\'t available.
    | DBusErrorInvalidSignature
    -- ^ A type signature is not valid.
    | DBusErrorInvalidFileContent
    -- ^ A file contains invalid syntax or is otherwise broken.
    | DBusErrorSelinuxSecurityContextUnknown
    -- ^ Asked for SELinux security context and it wasn\'t available.
    | DBusErrorAdtAuditDataUnknown
    -- ^ Asked for ADT audit data and it wasn\'t available.
    | DBusErrorObjectPathInUse
    -- ^ There\'s already an object with the requested object path.
    | DBusErrorUnknownObject
    -- ^ Object you invoked a method on isn\'t known. Since 2.42
    | DBusErrorUnknownInterface
    -- ^ Interface you invoked a method on isn\'t known by the object. Since 2.42
    | DBusErrorUnknownProperty
    -- ^ Property you tried to access isn\'t known by the object. Since 2.42
    | DBusErrorPropertyReadOnly
    -- ^ Property you tried to set is read-only. Since 2.42
    | AnotherDBusError Int
    -- ^ Catch-all for unknown values
    deriving (Int -> DBusError -> ShowS
[DBusError] -> ShowS
DBusError -> String
(Int -> DBusError -> ShowS)
-> (DBusError -> String)
-> ([DBusError] -> ShowS)
-> Show DBusError
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DBusError] -> ShowS
$cshowList :: [DBusError] -> ShowS
show :: DBusError -> String
$cshow :: DBusError -> String
showsPrec :: Int -> DBusError -> ShowS
$cshowsPrec :: Int -> DBusError -> ShowS
Show, DBusError -> DBusError -> Bool
(DBusError -> DBusError -> Bool)
-> (DBusError -> DBusError -> Bool) -> Eq DBusError
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DBusError -> DBusError -> Bool
$c/= :: DBusError -> DBusError -> Bool
== :: DBusError -> DBusError -> Bool
$c== :: DBusError -> DBusError -> Bool
Eq)

instance P.Enum DBusError where
    fromEnum :: DBusError -> Int
fromEnum DBusError
DBusErrorFailed = Int
0
    fromEnum DBusError
DBusErrorNoMemory = Int
1
    fromEnum DBusError
DBusErrorServiceUnknown = Int
2
    fromEnum DBusError
DBusErrorNameHasNoOwner = Int
3
    fromEnum DBusError
DBusErrorNoReply = Int
4
    fromEnum DBusError
DBusErrorIoError = Int
5
    fromEnum DBusError
DBusErrorBadAddress = Int
6
    fromEnum DBusError
DBusErrorNotSupported = Int
7
    fromEnum DBusError
DBusErrorLimitsExceeded = Int
8
    fromEnum DBusError
DBusErrorAccessDenied = Int
9
    fromEnum DBusError
DBusErrorAuthFailed = Int
10
    fromEnum DBusError
DBusErrorNoServer = Int
11
    fromEnum DBusError
DBusErrorTimeout = Int
12
    fromEnum DBusError
DBusErrorNoNetwork = Int
13
    fromEnum DBusError
DBusErrorAddressInUse = Int
14
    fromEnum DBusError
DBusErrorDisconnected = Int
15
    fromEnum DBusError
DBusErrorInvalidArgs = Int
16
    fromEnum DBusError
DBusErrorFileNotFound = Int
17
    fromEnum DBusError
DBusErrorFileExists = Int
18
    fromEnum DBusError
DBusErrorUnknownMethod = Int
19
    fromEnum DBusError
DBusErrorTimedOut = Int
20
    fromEnum DBusError
DBusErrorMatchRuleNotFound = Int
21
    fromEnum DBusError
DBusErrorMatchRuleInvalid = Int
22
    fromEnum DBusError
DBusErrorSpawnExecFailed = Int
23
    fromEnum DBusError
DBusErrorSpawnForkFailed = Int
24
    fromEnum DBusError
DBusErrorSpawnChildExited = Int
25
    fromEnum DBusError
DBusErrorSpawnChildSignaled = Int
26
    fromEnum DBusError
DBusErrorSpawnFailed = Int
27
    fromEnum DBusError
DBusErrorSpawnSetupFailed = Int
28
    fromEnum DBusError
DBusErrorSpawnConfigInvalid = Int
29
    fromEnum DBusError
DBusErrorSpawnServiceInvalid = Int
30
    fromEnum DBusError
DBusErrorSpawnServiceNotFound = Int
31
    fromEnum DBusError
DBusErrorSpawnPermissionsInvalid = Int
32
    fromEnum DBusError
DBusErrorSpawnFileInvalid = Int
33
    fromEnum DBusError
DBusErrorSpawnNoMemory = Int
34
    fromEnum DBusError
DBusErrorUnixProcessIdUnknown = Int
35
    fromEnum DBusError
DBusErrorInvalidSignature = Int
36
    fromEnum DBusError
DBusErrorInvalidFileContent = Int
37
    fromEnum DBusError
DBusErrorSelinuxSecurityContextUnknown = Int
38
    fromEnum DBusError
DBusErrorAdtAuditDataUnknown = Int
39
    fromEnum DBusError
DBusErrorObjectPathInUse = Int
40
    fromEnum DBusError
DBusErrorUnknownObject = Int
41
    fromEnum DBusError
DBusErrorUnknownInterface = Int
42
    fromEnum DBusError
DBusErrorUnknownProperty = Int
43
    fromEnum DBusError
DBusErrorPropertyReadOnly = Int
44
    fromEnum (AnotherDBusError Int
k) = Int
k

    toEnum :: Int -> DBusError
toEnum Int
0 = DBusError
DBusErrorFailed
    toEnum Int
1 = DBusError
DBusErrorNoMemory
    toEnum Int
2 = DBusError
DBusErrorServiceUnknown
    toEnum Int
3 = DBusError
DBusErrorNameHasNoOwner
    toEnum Int
4 = DBusError
DBusErrorNoReply
    toEnum Int
5 = DBusError
DBusErrorIoError
    toEnum Int
6 = DBusError
DBusErrorBadAddress
    toEnum Int
7 = DBusError
DBusErrorNotSupported
    toEnum Int
8 = DBusError
DBusErrorLimitsExceeded
    toEnum Int
9 = DBusError
DBusErrorAccessDenied
    toEnum Int
10 = DBusError
DBusErrorAuthFailed
    toEnum Int
11 = DBusError
DBusErrorNoServer
    toEnum Int
12 = DBusError
DBusErrorTimeout
    toEnum Int
13 = DBusError
DBusErrorNoNetwork
    toEnum Int
14 = DBusError
DBusErrorAddressInUse
    toEnum Int
15 = DBusError
DBusErrorDisconnected
    toEnum Int
16 = DBusError
DBusErrorInvalidArgs
    toEnum Int
17 = DBusError
DBusErrorFileNotFound
    toEnum Int
18 = DBusError
DBusErrorFileExists
    toEnum Int
19 = DBusError
DBusErrorUnknownMethod
    toEnum Int
20 = DBusError
DBusErrorTimedOut
    toEnum Int
21 = DBusError
DBusErrorMatchRuleNotFound
    toEnum Int
22 = DBusError
DBusErrorMatchRuleInvalid
    toEnum Int
23 = DBusError
DBusErrorSpawnExecFailed
    toEnum Int
24 = DBusError
DBusErrorSpawnForkFailed
    toEnum Int
25 = DBusError
DBusErrorSpawnChildExited
    toEnum Int
26 = DBusError
DBusErrorSpawnChildSignaled
    toEnum Int
27 = DBusError
DBusErrorSpawnFailed
    toEnum Int
28 = DBusError
DBusErrorSpawnSetupFailed
    toEnum Int
29 = DBusError
DBusErrorSpawnConfigInvalid
    toEnum Int
30 = DBusError
DBusErrorSpawnServiceInvalid
    toEnum Int
31 = DBusError
DBusErrorSpawnServiceNotFound
    toEnum Int
32 = DBusError
DBusErrorSpawnPermissionsInvalid
    toEnum Int
33 = DBusError
DBusErrorSpawnFileInvalid
    toEnum Int
34 = DBusError
DBusErrorSpawnNoMemory
    toEnum Int
35 = DBusError
DBusErrorUnixProcessIdUnknown
    toEnum Int
36 = DBusError
DBusErrorInvalidSignature
    toEnum Int
37 = DBusError
DBusErrorInvalidFileContent
    toEnum Int
38 = DBusError
DBusErrorSelinuxSecurityContextUnknown
    toEnum Int
39 = DBusError
DBusErrorAdtAuditDataUnknown
    toEnum Int
40 = DBusError
DBusErrorObjectPathInUse
    toEnum Int
41 = DBusError
DBusErrorUnknownObject
    toEnum Int
42 = DBusError
DBusErrorUnknownInterface
    toEnum Int
43 = DBusError
DBusErrorUnknownProperty
    toEnum Int
44 = DBusError
DBusErrorPropertyReadOnly
    toEnum Int
k = Int -> DBusError
AnotherDBusError Int
k

instance P.Ord DBusError where
    compare :: DBusError -> DBusError -> Ordering
compare DBusError
a DBusError
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (DBusError -> Int
forall a. Enum a => a -> Int
P.fromEnum DBusError
a) (DBusError -> Int
forall a. Enum a => a -> Int
P.fromEnum DBusError
b)

instance GErrorClass DBusError where
    gerrorClassDomain :: DBusError -> Text
gerrorClassDomain DBusError
_ = Text
"g-dbus-error-quark"

-- | Catch exceptions of type `DBusError`. This is a specialized version of `Data.GI.Base.GError.catchGErrorJustDomain`.
catchDBusError ::
    IO a ->
    (DBusError -> GErrorMessage -> IO a) ->
    IO a
catchDBusError :: IO a -> (DBusError -> Text -> IO a) -> IO a
catchDBusError = IO a -> (DBusError -> Text -> IO a) -> IO a
forall err a.
GErrorClass err =>
IO a -> (err -> Text -> IO a) -> IO a
catchGErrorJustDomain

-- | Handle exceptions of type `DBusError`. This is a specialized version of `Data.GI.Base.GError.handleGErrorJustDomain`.
handleDBusError ::
    (DBusError -> GErrorMessage -> IO a) ->
    IO a ->
    IO a
handleDBusError :: (DBusError -> Text -> IO a) -> IO a -> IO a
handleDBusError = (DBusError -> Text -> IO a) -> IO a -> IO a
forall err a.
GErrorClass err =>
(err -> Text -> IO a) -> IO a -> IO a
handleGErrorJustDomain

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

foreign import ccall "g_dbus_error_get_type" c_g_dbus_error_get_type :: 
    IO GType

instance B.Types.TypedObject DBusError where
    glibType :: IO GType
glibType = IO GType
c_g_dbus_error_get_type

instance B.Types.BoxedEnum DBusError

-- Enum CredentialsType
-- | Enumeration describing different kinds of native credential types.
-- 
-- /Since: 2.26/
data CredentialsType = 
      CredentialsTypeInvalid
    -- ^ Indicates an invalid native credential type.
    | CredentialsTypeLinuxUcred
    -- ^ The native credentials type is a struct ucred.
    | CredentialsTypeFreebsdCmsgcred
    -- ^ The native credentials type is a struct cmsgcred.
    | CredentialsTypeOpenbsdSockpeercred
    -- ^ The native credentials type is a struct sockpeercred. Added in 2.30.
    | CredentialsTypeSolarisUcred
    -- ^ The native credentials type is a ucred_t. Added in 2.40.
    | CredentialsTypeNetbsdUnpcbid
    -- ^ The native credentials type is a struct unpcbid.
    | AnotherCredentialsType Int
    -- ^ Catch-all for unknown values
    deriving (Int -> CredentialsType -> ShowS
[CredentialsType] -> ShowS
CredentialsType -> String
(Int -> CredentialsType -> ShowS)
-> (CredentialsType -> String)
-> ([CredentialsType] -> ShowS)
-> Show CredentialsType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CredentialsType] -> ShowS
$cshowList :: [CredentialsType] -> ShowS
show :: CredentialsType -> String
$cshow :: CredentialsType -> String
showsPrec :: Int -> CredentialsType -> ShowS
$cshowsPrec :: Int -> CredentialsType -> ShowS
Show, CredentialsType -> CredentialsType -> Bool
(CredentialsType -> CredentialsType -> Bool)
-> (CredentialsType -> CredentialsType -> Bool)
-> Eq CredentialsType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CredentialsType -> CredentialsType -> Bool
$c/= :: CredentialsType -> CredentialsType -> Bool
== :: CredentialsType -> CredentialsType -> Bool
$c== :: CredentialsType -> CredentialsType -> Bool
Eq)

instance P.Enum CredentialsType where
    fromEnum :: CredentialsType -> Int
fromEnum CredentialsType
CredentialsTypeInvalid = Int
0
    fromEnum CredentialsType
CredentialsTypeLinuxUcred = Int
1
    fromEnum CredentialsType
CredentialsTypeFreebsdCmsgcred = Int
2
    fromEnum CredentialsType
CredentialsTypeOpenbsdSockpeercred = Int
3
    fromEnum CredentialsType
CredentialsTypeSolarisUcred = Int
4
    fromEnum CredentialsType
CredentialsTypeNetbsdUnpcbid = Int
5
    fromEnum (AnotherCredentialsType Int
k) = Int
k

    toEnum :: Int -> CredentialsType
toEnum Int
0 = CredentialsType
CredentialsTypeInvalid
    toEnum Int
1 = CredentialsType
CredentialsTypeLinuxUcred
    toEnum Int
2 = CredentialsType
CredentialsTypeFreebsdCmsgcred
    toEnum Int
3 = CredentialsType
CredentialsTypeOpenbsdSockpeercred
    toEnum Int
4 = CredentialsType
CredentialsTypeSolarisUcred
    toEnum Int
5 = CredentialsType
CredentialsTypeNetbsdUnpcbid
    toEnum Int
k = Int -> CredentialsType
AnotherCredentialsType Int
k

instance P.Ord CredentialsType where
    compare :: CredentialsType -> CredentialsType -> Ordering
compare CredentialsType
a CredentialsType
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (CredentialsType -> Int
forall a. Enum a => a -> Int
P.fromEnum CredentialsType
a) (CredentialsType -> Int
forall a. Enum a => a -> Int
P.fromEnum CredentialsType
b)

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

foreign import ccall "g_credentials_type_get_type" c_g_credentials_type_get_type :: 
    IO GType

instance B.Types.TypedObject CredentialsType where
    glibType :: IO GType
glibType = IO GType
c_g_credentials_type_get_type

instance B.Types.BoxedEnum CredentialsType

-- Enum ConverterResult
-- | Results returned from 'GI.Gio.Interfaces.Converter.converterConvert'.
-- 
-- /Since: 2.24/
data ConverterResult = 
      ConverterResultError
    -- ^ There was an error during conversion.
    | ConverterResultConverted
    -- ^ Some data was consumed or produced
    | ConverterResultFinished
    -- ^ The conversion is finished
    | ConverterResultFlushed
    -- ^ Flushing is finished
    | AnotherConverterResult Int
    -- ^ Catch-all for unknown values
    deriving (Int -> ConverterResult -> ShowS
[ConverterResult] -> ShowS
ConverterResult -> String
(Int -> ConverterResult -> ShowS)
-> (ConverterResult -> String)
-> ([ConverterResult] -> ShowS)
-> Show ConverterResult
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ConverterResult] -> ShowS
$cshowList :: [ConverterResult] -> ShowS
show :: ConverterResult -> String
$cshow :: ConverterResult -> String
showsPrec :: Int -> ConverterResult -> ShowS
$cshowsPrec :: Int -> ConverterResult -> ShowS
Show, ConverterResult -> ConverterResult -> Bool
(ConverterResult -> ConverterResult -> Bool)
-> (ConverterResult -> ConverterResult -> Bool)
-> Eq ConverterResult
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ConverterResult -> ConverterResult -> Bool
$c/= :: ConverterResult -> ConverterResult -> Bool
== :: ConverterResult -> ConverterResult -> Bool
$c== :: ConverterResult -> ConverterResult -> Bool
Eq)

instance P.Enum ConverterResult where
    fromEnum :: ConverterResult -> Int
fromEnum ConverterResult
ConverterResultError = Int
0
    fromEnum ConverterResult
ConverterResultConverted = Int
1
    fromEnum ConverterResult
ConverterResultFinished = Int
2
    fromEnum ConverterResult
ConverterResultFlushed = Int
3
    fromEnum (AnotherConverterResult Int
k) = Int
k

    toEnum :: Int -> ConverterResult
toEnum Int
0 = ConverterResult
ConverterResultError
    toEnum Int
1 = ConverterResult
ConverterResultConverted
    toEnum Int
2 = ConverterResult
ConverterResultFinished
    toEnum Int
3 = ConverterResult
ConverterResultFlushed
    toEnum Int
k = Int -> ConverterResult
AnotherConverterResult Int
k

instance P.Ord ConverterResult where
    compare :: ConverterResult -> ConverterResult -> Ordering
compare ConverterResult
a ConverterResult
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (ConverterResult -> Int
forall a. Enum a => a -> Int
P.fromEnum ConverterResult
a) (ConverterResult -> Int
forall a. Enum a => a -> Int
P.fromEnum ConverterResult
b)

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

foreign import ccall "g_converter_result_get_type" c_g_converter_result_get_type :: 
    IO GType

instance B.Types.TypedObject ConverterResult where
    glibType :: IO GType
glibType = IO GType
c_g_converter_result_get_type

instance B.Types.BoxedEnum ConverterResult

-- Enum BusType
-- | An enumeration for well-known message buses.
-- 
-- /Since: 2.26/
data BusType = 
      BusTypeStarter
    -- ^ An alias for the message bus that activated the process, if any.
    | BusTypeNone
    -- ^ Not a message bus.
    | BusTypeSystem
    -- ^ The system-wide message bus.
    | BusTypeSession
    -- ^ The login session message bus.
    | AnotherBusType Int
    -- ^ Catch-all for unknown values
    deriving (Int -> BusType -> ShowS
[BusType] -> ShowS
BusType -> String
(Int -> BusType -> ShowS)
-> (BusType -> String) -> ([BusType] -> ShowS) -> Show BusType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [BusType] -> ShowS
$cshowList :: [BusType] -> ShowS
show :: BusType -> String
$cshow :: BusType -> String
showsPrec :: Int -> BusType -> ShowS
$cshowsPrec :: Int -> BusType -> ShowS
Show, BusType -> BusType -> Bool
(BusType -> BusType -> Bool)
-> (BusType -> BusType -> Bool) -> Eq BusType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: BusType -> BusType -> Bool
$c/= :: BusType -> BusType -> Bool
== :: BusType -> BusType -> Bool
$c== :: BusType -> BusType -> Bool
Eq)

instance P.Enum BusType where
    fromEnum :: BusType -> Int
fromEnum BusType
BusTypeStarter = Int
-1
    fromEnum BusType
BusTypeNone = Int
0
    fromEnum BusType
BusTypeSystem = Int
1
    fromEnum BusType
BusTypeSession = Int
2
    fromEnum (AnotherBusType Int
k) = Int
k

    toEnum :: Int -> BusType
toEnum Int
-1 = BusType
BusTypeStarter
    toEnum Int
0 = BusType
BusTypeNone
    toEnum Int
1 = BusType
BusTypeSystem
    toEnum Int
2 = BusType
BusTypeSession
    toEnum Int
k = Int -> BusType
AnotherBusType Int
k

instance P.Ord BusType where
    compare :: BusType -> BusType -> Ordering
compare BusType
a BusType
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (BusType -> Int
forall a. Enum a => a -> Int
P.fromEnum BusType
a) (BusType -> Int
forall a. Enum a => a -> Int
P.fromEnum BusType
b)

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

foreign import ccall "g_bus_type_get_type" c_g_bus_type_get_type :: 
    IO GType

instance B.Types.TypedObject BusType where
    glibType :: IO GType
glibType = IO GType
c_g_bus_type_get_type

instance B.Types.BoxedEnum BusType