magic-1.1.2: 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
#include "magic.h"
-- | 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 (Show)
instance Enum MagicFlag where
toEnum (#{const MAGIC_NONE}) = MagicNone
toEnum (#{const MAGIC_DEBUG}) = MagicDebug
toEnum (#{const MAGIC_SYMLINK}) = MagicSymlink
toEnum (#{const MAGIC_COMPRESS}) = MagicCompress
toEnum (#{const MAGIC_DEVICES}) = MagicDevices
toEnum (#{const MAGIC_MIME_TYPE}) = MagicMimeType
toEnum (#{const MAGIC_MIME_ENCODING}) = MagicMimeEncoding
toEnum (#{const MAGIC_MIME}) = MagicMime
toEnum (#{const MAGIC_CONTINUE}) = MagicContinue
toEnum (#{const MAGIC_CHECK}) = MagicCheck
toEnum (#{const MAGIC_PRESERVE_ATIME}) = MagicPreserveAtime
toEnum (#{const MAGIC_RAW}) = MagicRaw
toEnum (#{const MAGIC_ERROR}) = MagicError
toEnum (#{const MAGIC_APPLE}) = MagicApple
toEnum (#{const MAGIC_EXTENSION}) = MagicExtension
toEnum (#{const MAGIC_COMPRESS_TRANSP}) = MagicCompressTransp
toEnum (#{const MAGIC_NO_COMPRESS_FORK}) = MagicNoCompressFork
toEnum (#{const MAGIC_NODESC}) = MagicNodesc
toEnum (#{const MAGIC_NO_CHECK_COMPRESS}) = MagicNoCheckCompress
toEnum (#{const MAGIC_NO_CHECK_TAR}) = MagicNoCheckTar
toEnum (#{const MAGIC_NO_CHECK_SOFT}) = MagicNoCheckSoft
toEnum (#{const MAGIC_NO_CHECK_APPTYPE}) = MagicNoCheckApptype
toEnum (#{const MAGIC_NO_CHECK_ELF}) = MagicNoCheckElf
toEnum (#{const MAGIC_NO_CHECK_TEXT}) = MagicNoCheckText
toEnum (#{const MAGIC_NO_CHECK_CDF}) = MagicNoCheckCdf
toEnum (#{const MAGIC_NO_CHECK_CSV}) = MagicNoCheckCsv
toEnum (#{const MAGIC_NO_CHECK_TOKENS}) = MagicNoCheckTokens
toEnum (#{const MAGIC_NO_CHECK_ENCODING}) = MagicNoCheckEncoding
toEnum (#{const MAGIC_NO_CHECK_JSON}) = MagicNoCheckJson
toEnum (#{const MAGIC_NO_CHECK_SIMH}) = MagicNoCheckSimh
toEnum (#{const MAGIC_NO_CHECK_BUILTIN}) = MagicNoCheckBuiltin
toEnum x = UnknownMagicFlag x
fromEnum MagicNone = (#{const MAGIC_NONE})
fromEnum MagicDebug = (#{const MAGIC_DEBUG})
fromEnum MagicSymlink = (#{const MAGIC_SYMLINK})
fromEnum MagicCompress = (#{const MAGIC_COMPRESS})
fromEnum MagicDevices = (#{const MAGIC_DEVICES})
fromEnum MagicMimeType = (#{const MAGIC_MIME_TYPE})
fromEnum MagicMimeEncoding = (#{const MAGIC_MIME_ENCODING})
fromEnum MagicMime = (#{const MAGIC_MIME})
fromEnum MagicContinue = (#{const MAGIC_CONTINUE})
fromEnum MagicCheck = (#{const MAGIC_CHECK})
fromEnum MagicPreserveAtime = (#{const MAGIC_PRESERVE_ATIME})
fromEnum MagicRaw = (#{const MAGIC_RAW})
fromEnum MagicError = (#{const MAGIC_ERROR})
fromEnum MagicApple = (#{const MAGIC_APPLE})
fromEnum MagicExtension = (#{const MAGIC_EXTENSION})
fromEnum MagicCompressTransp = (#{const MAGIC_COMPRESS_TRANSP})
fromEnum MagicNoCompressFork = (#{const MAGIC_NO_COMPRESS_FORK})
fromEnum MagicNodesc = (#{const MAGIC_NODESC})
fromEnum MagicNoCheckCompress = (#{const MAGIC_NO_CHECK_COMPRESS})
fromEnum MagicNoCheckTar = (#{const MAGIC_NO_CHECK_TAR})
fromEnum MagicNoCheckSoft = (#{const MAGIC_NO_CHECK_SOFT})
fromEnum MagicNoCheckApptype = (#{const MAGIC_NO_CHECK_APPTYPE})
fromEnum MagicNoCheckElf = (#{const MAGIC_NO_CHECK_ELF})
fromEnum MagicNoCheckText = (#{const MAGIC_NO_CHECK_TEXT})
fromEnum MagicNoCheckCdf = (#{const MAGIC_NO_CHECK_CDF})
fromEnum MagicNoCheckCsv = (#{const MAGIC_NO_CHECK_CSV})
fromEnum MagicNoCheckTokens = (#{const MAGIC_NO_CHECK_TOKENS})
fromEnum MagicNoCheckEncoding = (#{const MAGIC_NO_CHECK_ENCODING})
fromEnum MagicNoCheckJson = (#{const MAGIC_NO_CHECK_JSON})
fromEnum MagicNoCheckSimh = (#{const MAGIC_NO_CHECK_SIMH})
fromEnum MagicNoCheckBuiltin = (#{const MAGIC_NO_CHECK_BUILTIN})
fromEnum (UnknownMagicFlag x) = x
instance Ord MagicFlag where
compare x y = compare (fromEnum x) (fromEnum y)
instance Eq MagicFlag where
x == y = (fromEnum x) == (fromEnum y)