module Data.SpirV.Enum.AddressingModel where import Data.String (IsString(..)) import Data.Word (Word32) import Foreign (Storable(..)) import GHC.Read (Read(..)) import Text.ParserCombinators.ReadPrec (pfail) import qualified GHC.Read as Read import qualified Text.Read.Lex as Lex newtype AddressingModel = AddressingModel Word32 deriving (AddressingModel -> AddressingModel -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: AddressingModel -> AddressingModel -> Bool $c/= :: AddressingModel -> AddressingModel -> Bool == :: AddressingModel -> AddressingModel -> Bool $c== :: AddressingModel -> AddressingModel -> Bool Eq, Eq AddressingModel AddressingModel -> AddressingModel -> Bool AddressingModel -> AddressingModel -> Ordering AddressingModel -> AddressingModel -> AddressingModel 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 :: AddressingModel -> AddressingModel -> AddressingModel $cmin :: AddressingModel -> AddressingModel -> AddressingModel max :: AddressingModel -> AddressingModel -> AddressingModel $cmax :: AddressingModel -> AddressingModel -> AddressingModel >= :: AddressingModel -> AddressingModel -> Bool $c>= :: AddressingModel -> AddressingModel -> Bool > :: AddressingModel -> AddressingModel -> Bool $c> :: AddressingModel -> AddressingModel -> Bool <= :: AddressingModel -> AddressingModel -> Bool $c<= :: AddressingModel -> AddressingModel -> Bool < :: AddressingModel -> AddressingModel -> Bool $c< :: AddressingModel -> AddressingModel -> Bool compare :: AddressingModel -> AddressingModel -> Ordering $ccompare :: AddressingModel -> AddressingModel -> Ordering Ord, Ptr AddressingModel -> IO AddressingModel Ptr AddressingModel -> Int -> IO AddressingModel Ptr AddressingModel -> Int -> AddressingModel -> IO () Ptr AddressingModel -> AddressingModel -> IO () AddressingModel -> Int forall b. Ptr b -> Int -> IO AddressingModel forall b. Ptr b -> Int -> AddressingModel -> IO () forall a. (a -> Int) -> (a -> Int) -> (Ptr a -> Int -> IO a) -> (Ptr a -> Int -> a -> IO ()) -> (forall b. Ptr b -> Int -> IO a) -> (forall b. Ptr b -> Int -> a -> IO ()) -> (Ptr a -> IO a) -> (Ptr a -> a -> IO ()) -> Storable a poke :: Ptr AddressingModel -> AddressingModel -> IO () $cpoke :: Ptr AddressingModel -> AddressingModel -> IO () peek :: Ptr AddressingModel -> IO AddressingModel $cpeek :: Ptr AddressingModel -> IO AddressingModel pokeByteOff :: forall b. Ptr b -> Int -> AddressingModel -> IO () $cpokeByteOff :: forall b. Ptr b -> Int -> AddressingModel -> IO () peekByteOff :: forall b. Ptr b -> Int -> IO AddressingModel $cpeekByteOff :: forall b. Ptr b -> Int -> IO AddressingModel pokeElemOff :: Ptr AddressingModel -> Int -> AddressingModel -> IO () $cpokeElemOff :: Ptr AddressingModel -> Int -> AddressingModel -> IO () peekElemOff :: Ptr AddressingModel -> Int -> IO AddressingModel $cpeekElemOff :: Ptr AddressingModel -> Int -> IO AddressingModel alignment :: AddressingModel -> Int $calignment :: AddressingModel -> Int sizeOf :: AddressingModel -> Int $csizeOf :: AddressingModel -> Int Storable) pattern Logical :: AddressingModel pattern $bLogical :: AddressingModel $mLogical :: forall {r}. AddressingModel -> ((# #) -> r) -> ((# #) -> r) -> r Logical = AddressingModel 0 pattern Physical32 :: AddressingModel pattern $bPhysical32 :: AddressingModel $mPhysical32 :: forall {r}. AddressingModel -> ((# #) -> r) -> ((# #) -> r) -> r Physical32 = AddressingModel 1 pattern Physical64 :: AddressingModel pattern $bPhysical64 :: AddressingModel $mPhysical64 :: forall {r}. AddressingModel -> ((# #) -> r) -> ((# #) -> r) -> r Physical64 = AddressingModel 2 pattern PhysicalStorageBuffer64 :: AddressingModel pattern $bPhysicalStorageBuffer64 :: AddressingModel $mPhysicalStorageBuffer64 :: forall {r}. AddressingModel -> ((# #) -> r) -> ((# #) -> r) -> r PhysicalStorageBuffer64 = AddressingModel 5348 pattern PhysicalStorageBuffer64EXT :: AddressingModel pattern $bPhysicalStorageBuffer64EXT :: AddressingModel $mPhysicalStorageBuffer64EXT :: forall {r}. AddressingModel -> ((# #) -> r) -> ((# #) -> r) -> r PhysicalStorageBuffer64EXT = AddressingModel 5348 toName :: IsString a => AddressingModel -> a toName :: forall a. IsString a => AddressingModel -> a toName AddressingModel x = case AddressingModel x of AddressingModel Logical -> a "Logical" AddressingModel Physical32 -> a "Physical32" AddressingModel Physical64 -> a "Physical64" AddressingModel PhysicalStorageBuffer64 -> a "PhysicalStorageBuffer64" AddressingModel PhysicalStorageBuffer64EXT -> a "PhysicalStorageBuffer64EXT" AddressingModel unknown -> forall a. IsString a => [Char] -> a fromString forall a b. (a -> b) -> a -> b $ [Char] "AddressingModel " forall a. [a] -> [a] -> [a] ++ forall a. Show a => a -> [Char] show AddressingModel unknown instance Show AddressingModel where show :: AddressingModel -> [Char] show = forall a. IsString a => AddressingModel -> a toName fromName :: (IsString a, Eq a) => a -> Maybe AddressingModel fromName :: forall a. (IsString a, Eq a) => a -> Maybe AddressingModel fromName a x = case a x of a "Logical" -> forall a. a -> Maybe a Just AddressingModel Logical a "Physical32" -> forall a. a -> Maybe a Just AddressingModel Physical32 a "Physical64" -> forall a. a -> Maybe a Just AddressingModel Physical64 a "PhysicalStorageBuffer64" -> forall a. a -> Maybe a Just AddressingModel PhysicalStorageBuffer64 a "PhysicalStorageBuffer64EXT" -> forall a. a -> Maybe a Just AddressingModel PhysicalStorageBuffer64EXT a _unknown -> forall a. Maybe a Nothing instance Read AddressingModel where readPrec :: ReadPrec AddressingModel readPrec = forall a. ReadPrec a -> ReadPrec a Read.parens do Lex.Ident [Char] s <- ReadPrec Lexeme Read.lexP forall b a. b -> (a -> b) -> Maybe a -> b maybe forall a. ReadPrec a pfail forall (f :: * -> *) a. Applicative f => a -> f a pure forall a b. (a -> b) -> a -> b $ forall a. (IsString a, Eq a) => a -> Maybe AddressingModel fromName [Char] s