module Data.SpirV.Enum.KernelProfilingInfo where

import Data.Bits (Bits)
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 KernelProfilingInfo = KernelProfilingInfo Word32
  deriving (KernelProfilingInfo -> KernelProfilingInfo -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: KernelProfilingInfo -> KernelProfilingInfo -> Bool
$c/= :: KernelProfilingInfo -> KernelProfilingInfo -> Bool
== :: KernelProfilingInfo -> KernelProfilingInfo -> Bool
$c== :: KernelProfilingInfo -> KernelProfilingInfo -> Bool
Eq, Eq KernelProfilingInfo
KernelProfilingInfo -> KernelProfilingInfo -> Bool
KernelProfilingInfo -> KernelProfilingInfo -> Ordering
KernelProfilingInfo -> KernelProfilingInfo -> KernelProfilingInfo
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 :: KernelProfilingInfo -> KernelProfilingInfo -> KernelProfilingInfo
$cmin :: KernelProfilingInfo -> KernelProfilingInfo -> KernelProfilingInfo
max :: KernelProfilingInfo -> KernelProfilingInfo -> KernelProfilingInfo
$cmax :: KernelProfilingInfo -> KernelProfilingInfo -> KernelProfilingInfo
>= :: KernelProfilingInfo -> KernelProfilingInfo -> Bool
$c>= :: KernelProfilingInfo -> KernelProfilingInfo -> Bool
> :: KernelProfilingInfo -> KernelProfilingInfo -> Bool
$c> :: KernelProfilingInfo -> KernelProfilingInfo -> Bool
<= :: KernelProfilingInfo -> KernelProfilingInfo -> Bool
$c<= :: KernelProfilingInfo -> KernelProfilingInfo -> Bool
< :: KernelProfilingInfo -> KernelProfilingInfo -> Bool
$c< :: KernelProfilingInfo -> KernelProfilingInfo -> Bool
compare :: KernelProfilingInfo -> KernelProfilingInfo -> Ordering
$ccompare :: KernelProfilingInfo -> KernelProfilingInfo -> Ordering
Ord, Ptr KernelProfilingInfo -> IO KernelProfilingInfo
Ptr KernelProfilingInfo -> Int -> IO KernelProfilingInfo
Ptr KernelProfilingInfo -> Int -> KernelProfilingInfo -> IO ()
Ptr KernelProfilingInfo -> KernelProfilingInfo -> IO ()
KernelProfilingInfo -> Int
forall b. Ptr b -> Int -> IO KernelProfilingInfo
forall b. Ptr b -> Int -> KernelProfilingInfo -> 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 KernelProfilingInfo -> KernelProfilingInfo -> IO ()
$cpoke :: Ptr KernelProfilingInfo -> KernelProfilingInfo -> IO ()
peek :: Ptr KernelProfilingInfo -> IO KernelProfilingInfo
$cpeek :: Ptr KernelProfilingInfo -> IO KernelProfilingInfo
pokeByteOff :: forall b. Ptr b -> Int -> KernelProfilingInfo -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> KernelProfilingInfo -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO KernelProfilingInfo
$cpeekByteOff :: forall b. Ptr b -> Int -> IO KernelProfilingInfo
pokeElemOff :: Ptr KernelProfilingInfo -> Int -> KernelProfilingInfo -> IO ()
$cpokeElemOff :: Ptr KernelProfilingInfo -> Int -> KernelProfilingInfo -> IO ()
peekElemOff :: Ptr KernelProfilingInfo -> Int -> IO KernelProfilingInfo
$cpeekElemOff :: Ptr KernelProfilingInfo -> Int -> IO KernelProfilingInfo
alignment :: KernelProfilingInfo -> Int
$calignment :: KernelProfilingInfo -> Int
sizeOf :: KernelProfilingInfo -> Int
$csizeOf :: KernelProfilingInfo -> Int
Storable, Eq KernelProfilingInfo
KernelProfilingInfo
Int -> KernelProfilingInfo
KernelProfilingInfo -> Bool
KernelProfilingInfo -> Int
KernelProfilingInfo -> Maybe Int
KernelProfilingInfo -> KernelProfilingInfo
KernelProfilingInfo -> Int -> Bool
KernelProfilingInfo -> Int -> KernelProfilingInfo
KernelProfilingInfo -> KernelProfilingInfo -> KernelProfilingInfo
forall a.
Eq a
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> a
-> (Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> Bool)
-> (a -> Maybe Int)
-> (a -> Int)
-> (a -> Bool)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int)
-> Bits a
popCount :: KernelProfilingInfo -> Int
$cpopCount :: KernelProfilingInfo -> Int
rotateR :: KernelProfilingInfo -> Int -> KernelProfilingInfo
$crotateR :: KernelProfilingInfo -> Int -> KernelProfilingInfo
rotateL :: KernelProfilingInfo -> Int -> KernelProfilingInfo
$crotateL :: KernelProfilingInfo -> Int -> KernelProfilingInfo
unsafeShiftR :: KernelProfilingInfo -> Int -> KernelProfilingInfo
$cunsafeShiftR :: KernelProfilingInfo -> Int -> KernelProfilingInfo
shiftR :: KernelProfilingInfo -> Int -> KernelProfilingInfo
$cshiftR :: KernelProfilingInfo -> Int -> KernelProfilingInfo
unsafeShiftL :: KernelProfilingInfo -> Int -> KernelProfilingInfo
$cunsafeShiftL :: KernelProfilingInfo -> Int -> KernelProfilingInfo
shiftL :: KernelProfilingInfo -> Int -> KernelProfilingInfo
$cshiftL :: KernelProfilingInfo -> Int -> KernelProfilingInfo
isSigned :: KernelProfilingInfo -> Bool
$cisSigned :: KernelProfilingInfo -> Bool
bitSize :: KernelProfilingInfo -> Int
$cbitSize :: KernelProfilingInfo -> Int
bitSizeMaybe :: KernelProfilingInfo -> Maybe Int
$cbitSizeMaybe :: KernelProfilingInfo -> Maybe Int
testBit :: KernelProfilingInfo -> Int -> Bool
$ctestBit :: KernelProfilingInfo -> Int -> Bool
complementBit :: KernelProfilingInfo -> Int -> KernelProfilingInfo
$ccomplementBit :: KernelProfilingInfo -> Int -> KernelProfilingInfo
clearBit :: KernelProfilingInfo -> Int -> KernelProfilingInfo
$cclearBit :: KernelProfilingInfo -> Int -> KernelProfilingInfo
setBit :: KernelProfilingInfo -> Int -> KernelProfilingInfo
$csetBit :: KernelProfilingInfo -> Int -> KernelProfilingInfo
bit :: Int -> KernelProfilingInfo
$cbit :: Int -> KernelProfilingInfo
zeroBits :: KernelProfilingInfo
$czeroBits :: KernelProfilingInfo
rotate :: KernelProfilingInfo -> Int -> KernelProfilingInfo
$crotate :: KernelProfilingInfo -> Int -> KernelProfilingInfo
shift :: KernelProfilingInfo -> Int -> KernelProfilingInfo
$cshift :: KernelProfilingInfo -> Int -> KernelProfilingInfo
complement :: KernelProfilingInfo -> KernelProfilingInfo
$ccomplement :: KernelProfilingInfo -> KernelProfilingInfo
xor :: KernelProfilingInfo -> KernelProfilingInfo -> KernelProfilingInfo
$cxor :: KernelProfilingInfo -> KernelProfilingInfo -> KernelProfilingInfo
.|. :: KernelProfilingInfo -> KernelProfilingInfo -> KernelProfilingInfo
$c.|. :: KernelProfilingInfo -> KernelProfilingInfo -> KernelProfilingInfo
.&. :: KernelProfilingInfo -> KernelProfilingInfo -> KernelProfilingInfo
$c.&. :: KernelProfilingInfo -> KernelProfilingInfo -> KernelProfilingInfo
Bits)

pattern CmdExecTime :: KernelProfilingInfo
pattern $bCmdExecTime :: KernelProfilingInfo
$mCmdExecTime :: forall {r}.
KernelProfilingInfo -> ((# #) -> r) -> ((# #) -> r) -> r
CmdExecTime = KernelProfilingInfo 0x1

toName :: IsString a => KernelProfilingInfo -> a
toName :: forall a. IsString a => KernelProfilingInfo -> a
toName KernelProfilingInfo
x = case KernelProfilingInfo
x of
  KernelProfilingInfo
CmdExecTime -> a
"CmdExecTime"
  KernelProfilingInfo
unknown -> forall a. IsString a => [Char] -> a
fromString forall a b. (a -> b) -> a -> b
$ [Char]
"KernelProfilingInfo " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> [Char]
show KernelProfilingInfo
unknown

instance Show KernelProfilingInfo where
  show :: KernelProfilingInfo -> [Char]
show = forall a. IsString a => KernelProfilingInfo -> a
toName

fromName :: (IsString a, Eq a) => a -> Maybe KernelProfilingInfo
fromName :: forall a. (IsString a, Eq a) => a -> Maybe KernelProfilingInfo
fromName a
x = case a
x of
  a
"CmdExecTime" -> forall a. a -> Maybe a
Just KernelProfilingInfo
CmdExecTime
  a
_unknown -> forall a. Maybe a
Nothing

instance Read KernelProfilingInfo where
  readPrec :: ReadPrec KernelProfilingInfo
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 KernelProfilingInfo
fromName [Char]
s