{-# LANGUAGE TemplateHaskell #-}

module Rattletrap.Type.EnumAttribute
  ( EnumAttribute(..)
  )
where

import Rattletrap.Type.Common

newtype EnumAttribute = EnumAttribute
  { EnumAttribute -> Word16
enumAttributeValue :: Word16
  } deriving (EnumAttribute -> EnumAttribute -> Bool
(EnumAttribute -> EnumAttribute -> Bool)
-> (EnumAttribute -> EnumAttribute -> Bool) -> Eq EnumAttribute
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: EnumAttribute -> EnumAttribute -> Bool
$c/= :: EnumAttribute -> EnumAttribute -> Bool
== :: EnumAttribute -> EnumAttribute -> Bool
$c== :: EnumAttribute -> EnumAttribute -> Bool
Eq, Eq EnumAttribute
Eq EnumAttribute
-> (EnumAttribute -> EnumAttribute -> Ordering)
-> (EnumAttribute -> EnumAttribute -> Bool)
-> (EnumAttribute -> EnumAttribute -> Bool)
-> (EnumAttribute -> EnumAttribute -> Bool)
-> (EnumAttribute -> EnumAttribute -> Bool)
-> (EnumAttribute -> EnumAttribute -> EnumAttribute)
-> (EnumAttribute -> EnumAttribute -> EnumAttribute)
-> Ord EnumAttribute
EnumAttribute -> EnumAttribute -> Bool
EnumAttribute -> EnumAttribute -> Ordering
EnumAttribute -> EnumAttribute -> EnumAttribute
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: EnumAttribute -> EnumAttribute -> EnumAttribute
$cmin :: EnumAttribute -> EnumAttribute -> EnumAttribute
max :: EnumAttribute -> EnumAttribute -> EnumAttribute
$cmax :: EnumAttribute -> EnumAttribute -> EnumAttribute
>= :: EnumAttribute -> EnumAttribute -> Bool
$c>= :: EnumAttribute -> EnumAttribute -> Bool
> :: EnumAttribute -> EnumAttribute -> Bool
$c> :: EnumAttribute -> EnumAttribute -> Bool
<= :: EnumAttribute -> EnumAttribute -> Bool
$c<= :: EnumAttribute -> EnumAttribute -> Bool
< :: EnumAttribute -> EnumAttribute -> Bool
$c< :: EnumAttribute -> EnumAttribute -> Bool
compare :: EnumAttribute -> EnumAttribute -> Ordering
$ccompare :: EnumAttribute -> EnumAttribute -> Ordering
$cp1Ord :: Eq EnumAttribute
Ord, Int -> EnumAttribute -> ShowS
[EnumAttribute] -> ShowS
EnumAttribute -> String
(Int -> EnumAttribute -> ShowS)
-> (EnumAttribute -> String)
-> ([EnumAttribute] -> ShowS)
-> Show EnumAttribute
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [EnumAttribute] -> ShowS
$cshowList :: [EnumAttribute] -> ShowS
show :: EnumAttribute -> String
$cshow :: EnumAttribute -> String
showsPrec :: Int -> EnumAttribute -> ShowS
$cshowsPrec :: Int -> EnumAttribute -> ShowS
Show)

$(deriveJson ''EnumAttribute)