{-# LANGUAGE TemplateHaskell #-}

module Rattletrap.Type.PartyLeaderAttribute
  ( PartyLeaderAttribute(..)
  )
where

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

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

$(deriveJson ''PartyLeaderAttribute)