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

module GI.OSTree.Flags
    ( 

-- * Exported types
    SysrootUpgraderPullFlags(..)            ,
    SysrootUpgraderFlags(..)                ,
    SysrootSimpleWriteDeploymentFlags(..)   ,
    SePolicyRestoreconFlags(..)             ,
    RepoPullFlags(..)                       ,
    RepoListObjectsFlags(..)                ,
    RepoCommitTraverseFlags(..)             ,
    RepoCommitState(..)                     ,
    RepoCommitModifierFlags(..)             ,
    DiffFlags(..)                           ,


    ) where

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

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


-- Flags SysrootUpgraderPullFlags
{- |
/No description available in the introspection data./
-}
data SysrootUpgraderPullFlags = 
      SysrootUpgraderPullFlagsNone
    {- ^
    /No description available in the introspection data./
    -}
    | SysrootUpgraderPullFlagsAllowOlder
    {- ^
    /No description available in the introspection data./
    -}
    | SysrootUpgraderPullFlagsSynthetic
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherSysrootUpgraderPullFlags Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum SysrootUpgraderPullFlags where
    fromEnum SysrootUpgraderPullFlagsNone = 0
    fromEnum SysrootUpgraderPullFlagsAllowOlder = 1
    fromEnum SysrootUpgraderPullFlagsSynthetic = 2
    fromEnum (AnotherSysrootUpgraderPullFlags k) = k

    toEnum 0 = SysrootUpgraderPullFlagsNone
    toEnum 1 = SysrootUpgraderPullFlagsAllowOlder
    toEnum 2 = SysrootUpgraderPullFlagsSynthetic
    toEnum k = AnotherSysrootUpgraderPullFlags k

instance P.Ord SysrootUpgraderPullFlags where
    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)

instance IsGFlag SysrootUpgraderPullFlags

-- Flags SysrootUpgraderFlags
{- |
Flags controlling operation of an 'GI.OSTree.Objects.SysrootUpgrader.SysrootUpgrader'.
-}
data SysrootUpgraderFlags = 
      SysrootUpgraderFlagsIgnoreUnconfigured
    {- ^
    Do not error if the origin has an unconfigured-state key
    -}
    | AnotherSysrootUpgraderFlags Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum SysrootUpgraderFlags where
    fromEnum SysrootUpgraderFlagsIgnoreUnconfigured = 2
    fromEnum (AnotherSysrootUpgraderFlags k) = k

    toEnum 2 = SysrootUpgraderFlagsIgnoreUnconfigured
    toEnum k = AnotherSysrootUpgraderFlags k

instance P.Ord SysrootUpgraderFlags where
    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)

foreign import ccall "ostree_sysroot_upgrader_flags_get_type" c_ostree_sysroot_upgrader_flags_get_type :: 
    IO GType

instance BoxedFlags SysrootUpgraderFlags where
    boxedFlagsType _ = c_ostree_sysroot_upgrader_flags_get_type

instance IsGFlag SysrootUpgraderFlags

-- Flags SysrootSimpleWriteDeploymentFlags
{- |
/No description available in the introspection data./
-}
data SysrootSimpleWriteDeploymentFlags = 
      SysrootSimpleWriteDeploymentFlagsNone
    {- ^
    /No description available in the introspection data./
    -}
    | SysrootSimpleWriteDeploymentFlagsRetain
    {- ^
    /No description available in the introspection data./
    -}
    | SysrootSimpleWriteDeploymentFlagsNotDefault
    {- ^
    /No description available in the introspection data./
    -}
    | SysrootSimpleWriteDeploymentFlagsNoClean
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherSysrootSimpleWriteDeploymentFlags Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum SysrootSimpleWriteDeploymentFlags where
    fromEnum SysrootSimpleWriteDeploymentFlagsNone = 0
    fromEnum SysrootSimpleWriteDeploymentFlagsRetain = 1
    fromEnum SysrootSimpleWriteDeploymentFlagsNotDefault = 2
    fromEnum SysrootSimpleWriteDeploymentFlagsNoClean = 4
    fromEnum (AnotherSysrootSimpleWriteDeploymentFlags k) = k

    toEnum 0 = SysrootSimpleWriteDeploymentFlagsNone
    toEnum 1 = SysrootSimpleWriteDeploymentFlagsRetain
    toEnum 2 = SysrootSimpleWriteDeploymentFlagsNotDefault
    toEnum 4 = SysrootSimpleWriteDeploymentFlagsNoClean
    toEnum k = AnotherSysrootSimpleWriteDeploymentFlags k

instance P.Ord SysrootSimpleWriteDeploymentFlags where
    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)

instance IsGFlag SysrootSimpleWriteDeploymentFlags

-- Flags SePolicyRestoreconFlags
{- |
/No description available in the introspection data./
-}
data SePolicyRestoreconFlags = 
      SePolicyRestoreconFlagsNone
    {- ^
    /No description available in the introspection data./
    -}
    | SePolicyRestoreconFlagsAllowNolabel
    {- ^
    /No description available in the introspection data./
    -}
    | SePolicyRestoreconFlagsKeepExisting
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherSePolicyRestoreconFlags Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum SePolicyRestoreconFlags where
    fromEnum SePolicyRestoreconFlagsNone = 0
    fromEnum SePolicyRestoreconFlagsAllowNolabel = 1
    fromEnum SePolicyRestoreconFlagsKeepExisting = 2
    fromEnum (AnotherSePolicyRestoreconFlags k) = k

    toEnum 0 = SePolicyRestoreconFlagsNone
    toEnum 1 = SePolicyRestoreconFlagsAllowNolabel
    toEnum 2 = SePolicyRestoreconFlagsKeepExisting
    toEnum k = AnotherSePolicyRestoreconFlags k

instance P.Ord SePolicyRestoreconFlags where
    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)

instance IsGFlag SePolicyRestoreconFlags

-- Flags RepoPullFlags
{- |
/No description available in the introspection data./
-}
data RepoPullFlags = 
      RepoPullFlagsNone
    {- ^
    No special options for pull
    -}
    | RepoPullFlagsMirror
    {- ^
    Write out refs suitable for mirrors
    -}
    | RepoPullFlagsCommitOnly
    {- ^
    Fetch only the commit metadata
    -}
    | RepoPullFlagsUntrusted
    {- ^
    Don\'t trust local remote
    -}
    | AnotherRepoPullFlags Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum RepoPullFlags where
    fromEnum RepoPullFlagsNone = 0
    fromEnum RepoPullFlagsMirror = 1
    fromEnum RepoPullFlagsCommitOnly = 2
    fromEnum RepoPullFlagsUntrusted = 4
    fromEnum (AnotherRepoPullFlags k) = k

    toEnum 0 = RepoPullFlagsNone
    toEnum 1 = RepoPullFlagsMirror
    toEnum 2 = RepoPullFlagsCommitOnly
    toEnum 4 = RepoPullFlagsUntrusted
    toEnum k = AnotherRepoPullFlags k

instance P.Ord RepoPullFlags where
    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)

instance IsGFlag RepoPullFlags

-- Flags RepoListObjectsFlags
{- |
/No description available in the introspection data./
-}
data RepoListObjectsFlags = 
      RepoListObjectsFlagsLoose
    {- ^
    List only loose (plain file) objects
    -}
    | RepoListObjectsFlagsPacked
    {- ^
    List only packed (compacted into blobs) objects
    -}
    | RepoListObjectsFlagsAll
    {- ^
    List all objects
    -}
    | RepoListObjectsFlagsNoParents
    {- ^
    Only list objects in this repo, not parents
    -}
    | AnotherRepoListObjectsFlags Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum RepoListObjectsFlags where
    fromEnum RepoListObjectsFlagsLoose = 1
    fromEnum RepoListObjectsFlagsPacked = 2
    fromEnum RepoListObjectsFlagsAll = 4
    fromEnum RepoListObjectsFlagsNoParents = 8
    fromEnum (AnotherRepoListObjectsFlags k) = k

    toEnum 1 = RepoListObjectsFlagsLoose
    toEnum 2 = RepoListObjectsFlagsPacked
    toEnum 4 = RepoListObjectsFlagsAll
    toEnum 8 = RepoListObjectsFlagsNoParents
    toEnum k = AnotherRepoListObjectsFlags k

instance P.Ord RepoListObjectsFlags where
    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)

instance IsGFlag RepoListObjectsFlags

-- Flags RepoCommitTraverseFlags
{- |
/No description available in the introspection data./
-}
data RepoCommitTraverseFlags = 
      RepoCommitTraverseFlagsRepoCommitTraverseFlagNone
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherRepoCommitTraverseFlags Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum RepoCommitTraverseFlags where
    fromEnum RepoCommitTraverseFlagsRepoCommitTraverseFlagNone = 1
    fromEnum (AnotherRepoCommitTraverseFlags k) = k

    toEnum 1 = RepoCommitTraverseFlagsRepoCommitTraverseFlagNone
    toEnum k = AnotherRepoCommitTraverseFlags k

instance P.Ord RepoCommitTraverseFlags where
    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)

instance IsGFlag RepoCommitTraverseFlags

-- Flags RepoCommitState
{- |
/No description available in the introspection data./
-}
data RepoCommitState = 
      RepoCommitStateRepoCommitStatePartial
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherRepoCommitState Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum RepoCommitState where
    fromEnum RepoCommitStateRepoCommitStatePartial = 1
    fromEnum (AnotherRepoCommitState k) = k

    toEnum 1 = RepoCommitStateRepoCommitStatePartial
    toEnum k = AnotherRepoCommitState k

instance P.Ord RepoCommitState where
    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)

instance IsGFlag RepoCommitState

-- Flags RepoCommitModifierFlags
{- |
/No description available in the introspection data./
-}
data RepoCommitModifierFlags = 
      RepoCommitModifierFlagsNone
    {- ^
    No special flags
    -}
    | RepoCommitModifierFlagsSkipXattrs
    {- ^
    Do not process extended attributes
    -}
    | RepoCommitModifierFlagsGenerateSizes
    {- ^
    Generate size information.
    -}
    | AnotherRepoCommitModifierFlags Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum RepoCommitModifierFlags where
    fromEnum RepoCommitModifierFlagsNone = 0
    fromEnum RepoCommitModifierFlagsSkipXattrs = 1
    fromEnum RepoCommitModifierFlagsGenerateSizes = 2
    fromEnum (AnotherRepoCommitModifierFlags k) = k

    toEnum 0 = RepoCommitModifierFlagsNone
    toEnum 1 = RepoCommitModifierFlagsSkipXattrs
    toEnum 2 = RepoCommitModifierFlagsGenerateSizes
    toEnum k = AnotherRepoCommitModifierFlags k

instance P.Ord RepoCommitModifierFlags where
    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)

instance IsGFlag RepoCommitModifierFlags

-- Flags DiffFlags
{- |
/No description available in the introspection data./
-}
data DiffFlags = 
      DiffFlagsNone
    {- ^
    /No description available in the introspection data./
    -}
    | DiffFlagsIgnoreXattrs
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherDiffFlags Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum DiffFlags where
    fromEnum DiffFlagsNone = 0
    fromEnum DiffFlagsIgnoreXattrs = 1
    fromEnum (AnotherDiffFlags k) = k

    toEnum 0 = DiffFlagsNone
    toEnum 1 = DiffFlagsIgnoreXattrs
    toEnum k = AnotherDiffFlags k

instance P.Ord DiffFlags where
    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)

instance IsGFlag DiffFlags