packages feed

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)