{-# LANGUAGE TemplateHaskell #-}

module Rattletrap.Type.ReservationAttribute
  ( ReservationAttribute(..)
  )
where

import Rattletrap.Type.Common
import Rattletrap.Type.CompressedWord
import Rattletrap.Type.Str
import Rattletrap.Type.UniqueIdAttribute

data ReservationAttribute = ReservationAttribute
  { ReservationAttribute -> CompressedWord
reservationAttributeNumber :: CompressedWord
  , ReservationAttribute -> UniqueIdAttribute
reservationAttributeUniqueId :: UniqueIdAttribute
  , ReservationAttribute -> Maybe Str
reservationAttributeName :: Maybe Str
  , ReservationAttribute -> Bool
reservationAttributeUnknown1 :: Bool
  , ReservationAttribute -> Bool
reservationAttributeUnknown2 :: Bool
  , ReservationAttribute -> Maybe Word8
reservationAttributeUnknown3 :: Maybe Word8
  } deriving (ReservationAttribute -> ReservationAttribute -> Bool
(ReservationAttribute -> ReservationAttribute -> Bool)
-> (ReservationAttribute -> ReservationAttribute -> Bool)
-> Eq ReservationAttribute
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ReservationAttribute -> ReservationAttribute -> Bool
$c/= :: ReservationAttribute -> ReservationAttribute -> Bool
== :: ReservationAttribute -> ReservationAttribute -> Bool
$c== :: ReservationAttribute -> ReservationAttribute -> Bool
Eq, Eq ReservationAttribute
Eq ReservationAttribute
-> (ReservationAttribute -> ReservationAttribute -> Ordering)
-> (ReservationAttribute -> ReservationAttribute -> Bool)
-> (ReservationAttribute -> ReservationAttribute -> Bool)
-> (ReservationAttribute -> ReservationAttribute -> Bool)
-> (ReservationAttribute -> ReservationAttribute -> Bool)
-> (ReservationAttribute
    -> ReservationAttribute -> ReservationAttribute)
-> (ReservationAttribute
    -> ReservationAttribute -> ReservationAttribute)
-> Ord ReservationAttribute
ReservationAttribute -> ReservationAttribute -> Bool
ReservationAttribute -> ReservationAttribute -> Ordering
ReservationAttribute
-> ReservationAttribute -> ReservationAttribute
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 :: ReservationAttribute
-> ReservationAttribute -> ReservationAttribute
$cmin :: ReservationAttribute
-> ReservationAttribute -> ReservationAttribute
max :: ReservationAttribute
-> ReservationAttribute -> ReservationAttribute
$cmax :: ReservationAttribute
-> ReservationAttribute -> ReservationAttribute
>= :: ReservationAttribute -> ReservationAttribute -> Bool
$c>= :: ReservationAttribute -> ReservationAttribute -> Bool
> :: ReservationAttribute -> ReservationAttribute -> Bool
$c> :: ReservationAttribute -> ReservationAttribute -> Bool
<= :: ReservationAttribute -> ReservationAttribute -> Bool
$c<= :: ReservationAttribute -> ReservationAttribute -> Bool
< :: ReservationAttribute -> ReservationAttribute -> Bool
$c< :: ReservationAttribute -> ReservationAttribute -> Bool
compare :: ReservationAttribute -> ReservationAttribute -> Ordering
$ccompare :: ReservationAttribute -> ReservationAttribute -> Ordering
$cp1Ord :: Eq ReservationAttribute
Ord, Int -> ReservationAttribute -> ShowS
[ReservationAttribute] -> ShowS
ReservationAttribute -> String
(Int -> ReservationAttribute -> ShowS)
-> (ReservationAttribute -> String)
-> ([ReservationAttribute] -> ShowS)
-> Show ReservationAttribute
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ReservationAttribute] -> ShowS
$cshowList :: [ReservationAttribute] -> ShowS
show :: ReservationAttribute -> String
$cshow :: ReservationAttribute -> String
showsPrec :: Int -> ReservationAttribute -> ShowS
$cshowsPrec :: Int -> ReservationAttribute -> ShowS
Show)

$(deriveJson ''ReservationAttribute)