{-# LANGUAGE TemplateHaskell #-}

module Rattletrap.Type.CompressedWordVector
  ( CompressedWordVector(..)
  )
where

import Rattletrap.Type.Common
import Rattletrap.Type.CompressedWord

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

$(deriveJson ''CompressedWordVector)