module Data.SpirV.Enum.OverflowModes 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 OverflowModes = OverflowModes Word32 deriving (OverflowModes -> OverflowModes -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: OverflowModes -> OverflowModes -> Bool $c/= :: OverflowModes -> OverflowModes -> Bool == :: OverflowModes -> OverflowModes -> Bool $c== :: OverflowModes -> OverflowModes -> Bool Eq, Eq OverflowModes OverflowModes -> OverflowModes -> Bool OverflowModes -> OverflowModes -> Ordering OverflowModes -> OverflowModes -> OverflowModes 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 :: OverflowModes -> OverflowModes -> OverflowModes $cmin :: OverflowModes -> OverflowModes -> OverflowModes max :: OverflowModes -> OverflowModes -> OverflowModes $cmax :: OverflowModes -> OverflowModes -> OverflowModes >= :: OverflowModes -> OverflowModes -> Bool $c>= :: OverflowModes -> OverflowModes -> Bool > :: OverflowModes -> OverflowModes -> Bool $c> :: OverflowModes -> OverflowModes -> Bool <= :: OverflowModes -> OverflowModes -> Bool $c<= :: OverflowModes -> OverflowModes -> Bool < :: OverflowModes -> OverflowModes -> Bool $c< :: OverflowModes -> OverflowModes -> Bool compare :: OverflowModes -> OverflowModes -> Ordering $ccompare :: OverflowModes -> OverflowModes -> Ordering Ord, Ptr OverflowModes -> IO OverflowModes Ptr OverflowModes -> Int -> IO OverflowModes Ptr OverflowModes -> Int -> OverflowModes -> IO () Ptr OverflowModes -> OverflowModes -> IO () OverflowModes -> Int forall b. Ptr b -> Int -> IO OverflowModes forall b. Ptr b -> Int -> OverflowModes -> 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 OverflowModes -> OverflowModes -> IO () $cpoke :: Ptr OverflowModes -> OverflowModes -> IO () peek :: Ptr OverflowModes -> IO OverflowModes $cpeek :: Ptr OverflowModes -> IO OverflowModes pokeByteOff :: forall b. Ptr b -> Int -> OverflowModes -> IO () $cpokeByteOff :: forall b. Ptr b -> Int -> OverflowModes -> IO () peekByteOff :: forall b. Ptr b -> Int -> IO OverflowModes $cpeekByteOff :: forall b. Ptr b -> Int -> IO OverflowModes pokeElemOff :: Ptr OverflowModes -> Int -> OverflowModes -> IO () $cpokeElemOff :: Ptr OverflowModes -> Int -> OverflowModes -> IO () peekElemOff :: Ptr OverflowModes -> Int -> IO OverflowModes $cpeekElemOff :: Ptr OverflowModes -> Int -> IO OverflowModes alignment :: OverflowModes -> Int $calignment :: OverflowModes -> Int sizeOf :: OverflowModes -> Int $csizeOf :: OverflowModes -> Int Storable) pattern WRAP :: OverflowModes pattern $bWRAP :: OverflowModes $mWRAP :: forall {r}. OverflowModes -> ((# #) -> r) -> ((# #) -> r) -> r WRAP = OverflowModes 0 pattern SAT :: OverflowModes pattern $bSAT :: OverflowModes $mSAT :: forall {r}. OverflowModes -> ((# #) -> r) -> ((# #) -> r) -> r SAT = OverflowModes 1 pattern SAT_ZERO :: OverflowModes pattern $bSAT_ZERO :: OverflowModes $mSAT_ZERO :: forall {r}. OverflowModes -> ((# #) -> r) -> ((# #) -> r) -> r SAT_ZERO = OverflowModes 2 pattern SAT_SYM :: OverflowModes pattern $bSAT_SYM :: OverflowModes $mSAT_SYM :: forall {r}. OverflowModes -> ((# #) -> r) -> ((# #) -> r) -> r SAT_SYM = OverflowModes 3 toName :: IsString a => OverflowModes -> a toName :: forall a. IsString a => OverflowModes -> a toName OverflowModes x = case OverflowModes x of OverflowModes WRAP -> a "WRAP" OverflowModes SAT -> a "SAT" OverflowModes SAT_ZERO -> a "SAT_ZERO" OverflowModes SAT_SYM -> a "SAT_SYM" OverflowModes unknown -> forall a. IsString a => [Char] -> a fromString forall a b. (a -> b) -> a -> b $ [Char] "OverflowModes " forall a. [a] -> [a] -> [a] ++ forall a. Show a => a -> [Char] show OverflowModes unknown instance Show OverflowModes where show :: OverflowModes -> [Char] show = forall a. IsString a => OverflowModes -> a toName fromName :: (IsString a, Eq a) => a -> Maybe OverflowModes fromName :: forall a. (IsString a, Eq a) => a -> Maybe OverflowModes fromName a x = case a x of a "WRAP" -> forall a. a -> Maybe a Just OverflowModes WRAP a "SAT" -> forall a. a -> Maybe a Just OverflowModes SAT a "SAT_ZERO" -> forall a. a -> Maybe a Just OverflowModes SAT_ZERO a "SAT_SYM" -> forall a. a -> Maybe a Just OverflowModes SAT_SYM a _unknown -> forall a. Maybe a Nothing instance Read OverflowModes where readPrec :: ReadPrec OverflowModes 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 OverflowModes fromName [Char] s