module Data.SpirV.Reflect.Enums.Generator where

import Data.SpirV.Reflect.Enums.Common

newtype Generator = Generator Int
  deriving newtype (Generator -> Generator -> Bool
(Generator -> Generator -> Bool)
-> (Generator -> Generator -> Bool) -> Eq Generator
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Generator -> Generator -> Bool
== :: Generator -> Generator -> Bool
$c/= :: Generator -> Generator -> Bool
/= :: Generator -> Generator -> Bool
Eq, Eq Generator
Eq Generator =>
(Generator -> Generator -> Ordering)
-> (Generator -> Generator -> Bool)
-> (Generator -> Generator -> Bool)
-> (Generator -> Generator -> Bool)
-> (Generator -> Generator -> Bool)
-> (Generator -> Generator -> Generator)
-> (Generator -> Generator -> Generator)
-> Ord Generator
Generator -> Generator -> Bool
Generator -> Generator -> Ordering
Generator -> Generator -> Generator
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
$ccompare :: Generator -> Generator -> Ordering
compare :: Generator -> Generator -> Ordering
$c< :: Generator -> Generator -> Bool
< :: Generator -> Generator -> Bool
$c<= :: Generator -> Generator -> Bool
<= :: Generator -> Generator -> Bool
$c> :: Generator -> Generator -> Bool
> :: Generator -> Generator -> Bool
$c>= :: Generator -> Generator -> Bool
>= :: Generator -> Generator -> Bool
$cmax :: Generator -> Generator -> Generator
max :: Generator -> Generator -> Generator
$cmin :: Generator -> Generator -> Generator
min :: Generator -> Generator -> Generator
Ord, Int -> Generator -> ShowS
[Generator] -> ShowS
Generator -> String
(Int -> Generator -> ShowS)
-> (Generator -> String)
-> ([Generator] -> ShowS)
-> Show Generator
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Generator -> ShowS
showsPrec :: Int -> Generator -> ShowS
$cshow :: Generator -> String
show :: Generator -> String
$cshowList :: [Generator] -> ShowS
showList :: [Generator] -> ShowS
Show, Int -> Generator
Generator -> Int
Generator -> [Generator]
Generator -> Generator
Generator -> Generator -> [Generator]
Generator -> Generator -> Generator -> [Generator]
(Generator -> Generator)
-> (Generator -> Generator)
-> (Int -> Generator)
-> (Generator -> Int)
-> (Generator -> [Generator])
-> (Generator -> Generator -> [Generator])
-> (Generator -> Generator -> [Generator])
-> (Generator -> Generator -> Generator -> [Generator])
-> Enum Generator
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
$csucc :: Generator -> Generator
succ :: Generator -> Generator
$cpred :: Generator -> Generator
pred :: Generator -> Generator
$ctoEnum :: Int -> Generator
toEnum :: Int -> Generator
$cfromEnum :: Generator -> Int
fromEnum :: Generator -> Int
$cenumFrom :: Generator -> [Generator]
enumFrom :: Generator -> [Generator]
$cenumFromThen :: Generator -> Generator -> [Generator]
enumFromThen :: Generator -> Generator -> [Generator]
$cenumFromTo :: Generator -> Generator -> [Generator]
enumFromTo :: Generator -> Generator -> [Generator]
$cenumFromThenTo :: Generator -> Generator -> Generator -> [Generator]
enumFromThenTo :: Generator -> Generator -> Generator -> [Generator]
Enum)

pattern GENERATOR_KHRONOS_LLVM_SPIRV_TRANSLATOR :: Generator
pattern $mGENERATOR_KHRONOS_LLVM_SPIRV_TRANSLATOR :: forall {r}. Generator -> ((# #) -> r) -> ((# #) -> r) -> r
$bGENERATOR_KHRONOS_LLVM_SPIRV_TRANSLATOR :: Generator
GENERATOR_KHRONOS_LLVM_SPIRV_TRANSLATOR = Generator 6

pattern GENERATOR_KHRONOS_SPIRV_TOOLS_ASSEMBLER :: Generator
pattern $mGENERATOR_KHRONOS_SPIRV_TOOLS_ASSEMBLER :: forall {r}. Generator -> ((# #) -> r) -> ((# #) -> r) -> r
$bGENERATOR_KHRONOS_SPIRV_TOOLS_ASSEMBLER :: Generator
GENERATOR_KHRONOS_SPIRV_TOOLS_ASSEMBLER = Generator 7

pattern GENERATOR_KHRONOS_GLSLANG_REFERENCE_FRONT_END :: Generator
pattern $mGENERATOR_KHRONOS_GLSLANG_REFERENCE_FRONT_END :: forall {r}. Generator -> ((# #) -> r) -> ((# #) -> r) -> r
$bGENERATOR_KHRONOS_GLSLANG_REFERENCE_FRONT_END :: Generator
GENERATOR_KHRONOS_GLSLANG_REFERENCE_FRONT_END = Generator 8

pattern GENERATOR_GOOGLE_SHADERC_OVER_GLSLANG :: Generator
pattern $mGENERATOR_GOOGLE_SHADERC_OVER_GLSLANG :: forall {r}. Generator -> ((# #) -> r) -> ((# #) -> r) -> r
$bGENERATOR_GOOGLE_SHADERC_OVER_GLSLANG :: Generator
GENERATOR_GOOGLE_SHADERC_OVER_GLSLANG = Generator 13

pattern GENERATOR_GOOGLE_SPIREGG :: Generator
pattern $mGENERATOR_GOOGLE_SPIREGG :: forall {r}. Generator -> ((# #) -> r) -> ((# #) -> r) -> r
$bGENERATOR_GOOGLE_SPIREGG :: Generator
GENERATOR_GOOGLE_SPIREGG = Generator 14

pattern GENERATOR_GOOGLE_RSPIRV :: Generator
pattern $mGENERATOR_GOOGLE_RSPIRV :: forall {r}. Generator -> ((# #) -> r) -> ((# #) -> r) -> r
$bGENERATOR_GOOGLE_RSPIRV :: Generator
GENERATOR_GOOGLE_RSPIRV = Generator 15

pattern GENERATOR_X_LEGEND_MESA_MESAIR_SPIRV_TRANSLATOR :: Generator
pattern $mGENERATOR_X_LEGEND_MESA_MESAIR_SPIRV_TRANSLATOR :: forall {r}. Generator -> ((# #) -> r) -> ((# #) -> r) -> r
$bGENERATOR_X_LEGEND_MESA_MESAIR_SPIRV_TRANSLATOR :: Generator
GENERATOR_X_LEGEND_MESA_MESAIR_SPIRV_TRANSLATOR = Generator 16

pattern GENERATOR_KHRONOS_SPIRV_TOOLS_LINKER :: Generator
pattern $mGENERATOR_KHRONOS_SPIRV_TOOLS_LINKER :: forall {r}. Generator -> ((# #) -> r) -> ((# #) -> r) -> r
$bGENERATOR_KHRONOS_SPIRV_TOOLS_LINKER :: Generator
GENERATOR_KHRONOS_SPIRV_TOOLS_LINKER = Generator 17

pattern GENERATOR_WINE_VKD3D_SHADER_COMPILER :: Generator
pattern $mGENERATOR_WINE_VKD3D_SHADER_COMPILER :: forall {r}. Generator -> ((# #) -> r) -> ((# #) -> r) -> r
$bGENERATOR_WINE_VKD3D_SHADER_COMPILER :: Generator
GENERATOR_WINE_VKD3D_SHADER_COMPILER = Generator 18

pattern GENERATOR_CLAY_CLAY_SHADER_COMPILER :: Generator
pattern $mGENERATOR_CLAY_CLAY_SHADER_COMPILER :: forall {r}. Generator -> ((# #) -> r) -> ((# #) -> r) -> r
$bGENERATOR_CLAY_CLAY_SHADER_COMPILER :: Generator
GENERATOR_CLAY_CLAY_SHADER_COMPILER = Generator 19

generatorName :: IsString label => Generator -> Maybe label
generatorName :: forall label. IsString label => Generator -> Maybe label
generatorName = [(Generator, label)] -> Generator -> Maybe label
forall i label. Enum i => [(i, label)] -> i -> Maybe label
toLabel [(Generator, label)]
forall label. IsString label => [(Generator, label)]
generatorNames

generatorNames :: IsString label => [(Generator, label)]
generatorNames :: forall label. IsString label => [(Generator, label)]
generatorNames =
  [ (Generator
GENERATOR_KHRONOS_LLVM_SPIRV_TRANSLATOR, label
"Khronos LLVM/SPIR-V Translator")
  , (Generator
GENERATOR_KHRONOS_SPIRV_TOOLS_ASSEMBLER, label
"Khronos SPIR-V Tools Assembler")
  , (Generator
GENERATOR_KHRONOS_GLSLANG_REFERENCE_FRONT_END, label
"Khronos Glslang Reference Front End")
  , (Generator
GENERATOR_GOOGLE_SHADERC_OVER_GLSLANG, label
"Google Shaderc over Glslang")
  , (Generator
GENERATOR_GOOGLE_SPIREGG, label
"Google spiregg")
  , (Generator
GENERATOR_GOOGLE_RSPIRV, label
"Google rspirv")
  , (Generator
GENERATOR_X_LEGEND_MESA_MESAIR_SPIRV_TRANSLATOR, label
"X-LEGEND Mesa-IR/SPIR-V Translator")
  , (Generator
GENERATOR_KHRONOS_SPIRV_TOOLS_LINKER, label
"Khronos SPIR-V Tools Linker")
  , (Generator
GENERATOR_WINE_VKD3D_SHADER_COMPILER, label
"Wine VKD3D Shader Compiler")
  , (Generator
GENERATOR_CLAY_CLAY_SHADER_COMPILER, label
"Clay Clay Shader Compiler")
  ]