module Magic.Data (module Magic.Data) where
data MagicFlag =
MagicNone
| MagicDebug
| MagicSymlink
| MagicCompress
| MagicDevices
| MagicMimeType
| MagicMimeEncoding
| MagicMime
| MagicContinue
| MagicCheck
| MagicPreserveAtime
| MagicRaw
| MagicError
| UnknownMagicFlag Int
deriving (Show)
instance Enum MagicFlag where
toEnum (0) = MagicNone
toEnum (1) = MagicDebug
toEnum (2) = MagicSymlink
toEnum (4) = MagicCompress
toEnum (8) = MagicDevices
toEnum (16) = MagicMimeType
toEnum (1024) = MagicMimeEncoding
toEnum (1040) = MagicMime
toEnum (32) = MagicContinue
toEnum (64) = MagicCheck
toEnum (128) = MagicPreserveAtime
toEnum (256) = MagicRaw
toEnum (512) = MagicError
toEnum x = UnknownMagicFlag x
fromEnum MagicNone = (0)
fromEnum MagicDebug = (1)
fromEnum MagicSymlink = (2)
fromEnum MagicCompress = (4)
fromEnum MagicDevices = (8)
fromEnum MagicMimeType = (16)
fromEnum MagicMimeEncoding = (1024)
fromEnum MagicMime = (1040)
fromEnum MagicContinue = (32)
fromEnum MagicCheck = (64)
fromEnum MagicPreserveAtime = (128)
fromEnum MagicRaw = (256)
fromEnum MagicError = (512)
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)