{-# LINE 1 "src/Magic/Data.hsc" #-}
-- AUTO-GENERATED FILE, DO NOT EDIT.  GENERATED BY utils/genconsts.hs
{- |
   Module     : Magic.Data
   Copyright  : Copyright (C) 2005 John Goerzen
   License    : BSD-3-Clause

   Maintainer : Philippe <philippedev101\@gmail.com>
   Stability  : provisional
   Portability: portable

The 'MagicFlag' enumeration, mapping the C @libmagic@ @MAGIC_*@ constants
to Haskell.
-}

module Magic.Data (MagicFlag(..)) where




-- | Flags that control how @libmagic@ examines a file and what it
-- reports. Combine them in the list passed to @magicOpen@ or
-- @magicSetFlags@.
data MagicFlag
    = -- | No special handling; return a textual description (the default).
      MagicNone
    | -- | Print debugging messages to stderr.
      MagicDebug
    | -- | Follow symbolic links.
      MagicSymlink
    | -- | Look inside compressed files.
      MagicCompress
    | -- | Look at the contents of block or character special devices.
      MagicDevices
    | -- | Return a MIME type string instead of a textual description.
      MagicMimeType
    | -- | Return the MIME encoding (character set) instead of a textual description.
      MagicMimeEncoding
    | -- | Return both the MIME type and the encoding.
      MagicMime
    | -- | Return all matches, not just the first.
      MagicContinue
    | -- | Check the magic database for consistency and report problems.
      MagicCheck
    | -- | Preserve the access time of examined files.
      MagicPreserveAtime
    | -- | Do not translate unprintable characters to octal escapes.
      MagicRaw
    | -- | Treat errors while examining a file as real errors instead of embedding them in the result.
      MagicError
    | -- | Return the Apple creator and type.
      MagicApple
    | -- | Return a slash-separated list of valid file extensions for the detected type.
      MagicExtension
    | -- | Report on the compressed contents only, without mentioning the compression itself (transparent decompression).
      MagicCompressTransp
    | -- | Do not allow decompression that requires forking a helper process.
      MagicNoCompressFork
    | -- | Composite of 'MagicExtension', 'MagicMime' and 'MagicApple': return identifiers rather than a textual description.
      MagicNodesc
    | -- | Do not look inside compressed files.
      MagicNoCheckCompress
    | -- | Do not examine tar archives.
      MagicNoCheckTar
    | -- | Do not consult the magic database entries (soft magic).
      MagicNoCheckSoft
    | -- | Do not check for an application type (e.g. EMX).
      MagicNoCheckApptype
    | -- | Do not examine ELF details.
      MagicNoCheckElf
    | -- | Do not examine text files.
      MagicNoCheckText
    | -- | Do not examine CDF (Microsoft Compound Document) files.
      MagicNoCheckCdf
    | -- | Do not examine CSV files.
      MagicNoCheckCsv
    | -- | Do not look for known text tokens.
      MagicNoCheckTokens
    | -- | Do not check text encodings.
      MagicNoCheckEncoding
    | -- | Do not examine JSON files.
      MagicNoCheckJson
    | -- | Do not examine SIMH tape files.
      MagicNoCheckSimh
    | -- | Disable all built-in tests; consult only the magic database.
      MagicNoCheckBuiltin
    | -- | A flag value returned by libmagic that these bindings do not
      --   recognise, carrying its raw integer value.
      UnknownMagicFlag Int
  deriving (Int -> MagicFlag -> ShowS
[MagicFlag] -> ShowS
MagicFlag -> String
(Int -> MagicFlag -> ShowS)
-> (MagicFlag -> String)
-> ([MagicFlag] -> ShowS)
-> Show MagicFlag
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> MagicFlag -> ShowS
showsPrec :: Int -> MagicFlag -> ShowS
$cshow :: MagicFlag -> String
show :: MagicFlag -> String
$cshowList :: [MagicFlag] -> ShowS
showList :: [MagicFlag] -> ShowS
Show)

instance Enum MagicFlag where
 toEnum :: Int -> MagicFlag
toEnum (Int
0) = MagicFlag
MagicNone
{-# LINE 93 "src/Magic/Data.hsc" #-}
 toEnum (1) = MagicDebug
{-# LINE 94 "src/Magic/Data.hsc" #-}
 toEnum (2) = MagicSymlink
{-# LINE 95 "src/Magic/Data.hsc" #-}
 toEnum (4) = MagicCompress
{-# LINE 96 "src/Magic/Data.hsc" #-}
 toEnum (8) = MagicDevices
{-# LINE 97 "src/Magic/Data.hsc" #-}
 toEnum (16) = MagicMimeType
{-# LINE 98 "src/Magic/Data.hsc" #-}
 toEnum (1024) = MagicMimeEncoding
{-# LINE 99 "src/Magic/Data.hsc" #-}
 toEnum (1040) = MagicMime
{-# LINE 100 "src/Magic/Data.hsc" #-}
 toEnum (32) = MagicContinue
{-# LINE 101 "src/Magic/Data.hsc" #-}
 toEnum (64) = MagicCheck
{-# LINE 102 "src/Magic/Data.hsc" #-}
 toEnum (128) = MagicPreserveAtime
{-# LINE 103 "src/Magic/Data.hsc" #-}
 toEnum (256) = MagicRaw
{-# LINE 104 "src/Magic/Data.hsc" #-}
 toEnum (512) = MagicError
{-# LINE 105 "src/Magic/Data.hsc" #-}
 toEnum (2048) = MagicApple
{-# LINE 106 "src/Magic/Data.hsc" #-}
 toEnum (16777216) = MagicExtension
{-# LINE 107 "src/Magic/Data.hsc" #-}
 toEnum (33554432) = MagicCompressTransp
{-# LINE 108 "src/Magic/Data.hsc" #-}
 toEnum (67108864) = MagicNoCompressFork
{-# LINE 109 "src/Magic/Data.hsc" #-}
 toEnum (16780304) = MagicNodesc
{-# LINE 110 "src/Magic/Data.hsc" #-}
 toEnum (4096) = MagicNoCheckCompress
{-# LINE 111 "src/Magic/Data.hsc" #-}
 toEnum (8192) = MagicNoCheckTar
{-# LINE 112 "src/Magic/Data.hsc" #-}
 toEnum (16384) = MagicNoCheckSoft
{-# LINE 113 "src/Magic/Data.hsc" #-}
 toEnum (32768) = MagicNoCheckApptype
{-# LINE 114 "src/Magic/Data.hsc" #-}
 toEnum (65536) = MagicNoCheckElf
{-# LINE 115 "src/Magic/Data.hsc" #-}
 toEnum (131072) = MagicNoCheckText
{-# LINE 116 "src/Magic/Data.hsc" #-}
 toEnum (262144) = MagicNoCheckCdf
{-# LINE 117 "src/Magic/Data.hsc" #-}
 toEnum (524288) = MagicNoCheckCsv
{-# LINE 118 "src/Magic/Data.hsc" #-}
 toEnum (1048576) = MagicNoCheckTokens
{-# LINE 119 "src/Magic/Data.hsc" #-}
 toEnum (2097152) = MagicNoCheckEncoding
{-# LINE 120 "src/Magic/Data.hsc" #-}
 toEnum (4194304) = MagicNoCheckJson
{-# LINE 121 "src/Magic/Data.hsc" #-}
 toEnum (8388608) = MagicNoCheckSimh
{-# LINE 122 "src/Magic/Data.hsc" #-}
 toEnum (16756736) = MagicNoCheckBuiltin
{-# LINE 123 "src/Magic/Data.hsc" #-}
 toEnum x = UnknownMagicFlag x

 fromEnum :: MagicFlag -> Int
fromEnum MagicFlag
MagicNone = (Int
0)
{-# LINE 126 "src/Magic/Data.hsc" #-}
 fromEnum MagicDebug = (1)
{-# LINE 127 "src/Magic/Data.hsc" #-}
 fromEnum MagicSymlink = (2)
{-# LINE 128 "src/Magic/Data.hsc" #-}
 fromEnum MagicCompress = (4)
{-# LINE 129 "src/Magic/Data.hsc" #-}
 fromEnum MagicDevices = (8)
{-# LINE 130 "src/Magic/Data.hsc" #-}
 fromEnum MagicMimeType = (16)
{-# LINE 131 "src/Magic/Data.hsc" #-}
 fromEnum MagicMimeEncoding = (1024)
{-# LINE 132 "src/Magic/Data.hsc" #-}
 fromEnum MagicMime = (1040)
{-# LINE 133 "src/Magic/Data.hsc" #-}
 fromEnum MagicContinue = (32)
{-# LINE 134 "src/Magic/Data.hsc" #-}
 fromEnum MagicCheck = (64)
{-# LINE 135 "src/Magic/Data.hsc" #-}
 fromEnum MagicPreserveAtime = (128)
{-# LINE 136 "src/Magic/Data.hsc" #-}
 fromEnum MagicRaw = (256)
{-# LINE 137 "src/Magic/Data.hsc" #-}
 fromEnum MagicError = (512)
{-# LINE 138 "src/Magic/Data.hsc" #-}
 fromEnum MagicApple = (2048)
{-# LINE 139 "src/Magic/Data.hsc" #-}
 fromEnum MagicExtension = (16777216)
{-# LINE 140 "src/Magic/Data.hsc" #-}
 fromEnum MagicCompressTransp = (33554432)
{-# LINE 141 "src/Magic/Data.hsc" #-}
 fromEnum MagicNoCompressFork = (67108864)
{-# LINE 142 "src/Magic/Data.hsc" #-}
 fromEnum MagicNodesc = (16780304)
{-# LINE 143 "src/Magic/Data.hsc" #-}
 fromEnum MagicNoCheckCompress = (4096)
{-# LINE 144 "src/Magic/Data.hsc" #-}
 fromEnum MagicNoCheckTar = (8192)
{-# LINE 145 "src/Magic/Data.hsc" #-}
 fromEnum MagicNoCheckSoft = (16384)
{-# LINE 146 "src/Magic/Data.hsc" #-}
 fromEnum MagicNoCheckApptype = (32768)
{-# LINE 147 "src/Magic/Data.hsc" #-}
 fromEnum MagicNoCheckElf = (65536)
{-# LINE 148 "src/Magic/Data.hsc" #-}
 fromEnum MagicNoCheckText = (131072)
{-# LINE 149 "src/Magic/Data.hsc" #-}
 fromEnum MagicNoCheckCdf = (262144)
{-# LINE 150 "src/Magic/Data.hsc" #-}
 fromEnum MagicNoCheckCsv = (524288)
{-# LINE 151 "src/Magic/Data.hsc" #-}
 fromEnum MagicNoCheckTokens = (1048576)
{-# LINE 152 "src/Magic/Data.hsc" #-}
 fromEnum MagicNoCheckEncoding = (2097152)
{-# LINE 153 "src/Magic/Data.hsc" #-}
 fromEnum MagicNoCheckJson = (4194304)
{-# LINE 154 "src/Magic/Data.hsc" #-}
 fromEnum MagicNoCheckSimh = (8388608)
{-# LINE 155 "src/Magic/Data.hsc" #-}
 fromEnum MagicNoCheckBuiltin = (16756736)
{-# LINE 156 "src/Magic/Data.hsc" #-}
 fromEnum (UnknownMagicFlag x) = x

instance Ord MagicFlag where
 compare :: MagicFlag -> MagicFlag -> Ordering
compare MagicFlag
x MagicFlag
y = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
compare (MagicFlag -> Int
forall a. Enum a => a -> Int
fromEnum MagicFlag
x) (MagicFlag -> Int
forall a. Enum a => a -> Int
fromEnum MagicFlag
y)

instance Eq MagicFlag where
 MagicFlag
x == :: MagicFlag -> MagicFlag -> Bool
== MagicFlag
y = (MagicFlag -> Int
forall a. Enum a => a -> Int
fromEnum MagicFlag
x) Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== (MagicFlag -> Int
forall a. Enum a => a -> Int
fromEnum MagicFlag
y)