{-# LANGUAGE TemplateHaskell #-}

module Rattletrap.Type.FlaggedByteAttribute
  ( FlaggedByteAttribute(..)
  )
where

import Rattletrap.Type.Common
import Rattletrap.Type.Word8le

data FlaggedByteAttribute = FlaggedByteAttribute
  { FlaggedByteAttribute -> Bool
flaggedByteAttributeFlag :: Bool
  , FlaggedByteAttribute -> Word8le
flaggedByteAttributeByte :: Word8le
  } deriving (FlaggedByteAttribute -> FlaggedByteAttribute -> Bool
(FlaggedByteAttribute -> FlaggedByteAttribute -> Bool)
-> (FlaggedByteAttribute -> FlaggedByteAttribute -> Bool)
-> Eq FlaggedByteAttribute
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: FlaggedByteAttribute -> FlaggedByteAttribute -> Bool
$c/= :: FlaggedByteAttribute -> FlaggedByteAttribute -> Bool
== :: FlaggedByteAttribute -> FlaggedByteAttribute -> Bool
$c== :: FlaggedByteAttribute -> FlaggedByteAttribute -> Bool
Eq, Eq FlaggedByteAttribute
Eq FlaggedByteAttribute
-> (FlaggedByteAttribute -> FlaggedByteAttribute -> Ordering)
-> (FlaggedByteAttribute -> FlaggedByteAttribute -> Bool)
-> (FlaggedByteAttribute -> FlaggedByteAttribute -> Bool)
-> (FlaggedByteAttribute -> FlaggedByteAttribute -> Bool)
-> (FlaggedByteAttribute -> FlaggedByteAttribute -> Bool)
-> (FlaggedByteAttribute
    -> FlaggedByteAttribute -> FlaggedByteAttribute)
-> (FlaggedByteAttribute
    -> FlaggedByteAttribute -> FlaggedByteAttribute)
-> Ord FlaggedByteAttribute
FlaggedByteAttribute -> FlaggedByteAttribute -> Bool
FlaggedByteAttribute -> FlaggedByteAttribute -> Ordering
FlaggedByteAttribute
-> FlaggedByteAttribute -> FlaggedByteAttribute
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 :: FlaggedByteAttribute
-> FlaggedByteAttribute -> FlaggedByteAttribute
$cmin :: FlaggedByteAttribute
-> FlaggedByteAttribute -> FlaggedByteAttribute
max :: FlaggedByteAttribute
-> FlaggedByteAttribute -> FlaggedByteAttribute
$cmax :: FlaggedByteAttribute
-> FlaggedByteAttribute -> FlaggedByteAttribute
>= :: FlaggedByteAttribute -> FlaggedByteAttribute -> Bool
$c>= :: FlaggedByteAttribute -> FlaggedByteAttribute -> Bool
> :: FlaggedByteAttribute -> FlaggedByteAttribute -> Bool
$c> :: FlaggedByteAttribute -> FlaggedByteAttribute -> Bool
<= :: FlaggedByteAttribute -> FlaggedByteAttribute -> Bool
$c<= :: FlaggedByteAttribute -> FlaggedByteAttribute -> Bool
< :: FlaggedByteAttribute -> FlaggedByteAttribute -> Bool
$c< :: FlaggedByteAttribute -> FlaggedByteAttribute -> Bool
compare :: FlaggedByteAttribute -> FlaggedByteAttribute -> Ordering
$ccompare :: FlaggedByteAttribute -> FlaggedByteAttribute -> Ordering
$cp1Ord :: Eq FlaggedByteAttribute
Ord, Int -> FlaggedByteAttribute -> ShowS
[FlaggedByteAttribute] -> ShowS
FlaggedByteAttribute -> String
(Int -> FlaggedByteAttribute -> ShowS)
-> (FlaggedByteAttribute -> String)
-> ([FlaggedByteAttribute] -> ShowS)
-> Show FlaggedByteAttribute
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [FlaggedByteAttribute] -> ShowS
$cshowList :: [FlaggedByteAttribute] -> ShowS
show :: FlaggedByteAttribute -> String
$cshow :: FlaggedByteAttribute -> String
showsPrec :: Int -> FlaggedByteAttribute -> ShowS
$cshowsPrec :: Int -> FlaggedByteAttribute -> ShowS
Show)

$(deriveJson ''FlaggedByteAttribute)