pub const BUILTIN_TYPE_NAMES: &[&str] = &[
"__AbstractInt",
"__AbstractFloat",
"bool",
"f16",
"f32",
"i32",
"sampler",
"sampler_comparison",
"texture_depth_2d",
"texture_depth_2d_array",
"texture_depth_cube",
"texture_depth_cube_array",
"texture_depth_multisampled_2d",
"texture_external",
"u32",
#[cfg(feature = "naga-ext")]
"i64",
#[cfg(feature = "naga-ext")]
"u64",
#[cfg(feature = "naga-ext")]
"f64",
#[cfg(feature = "naga-ext")]
"ray_query",
#[cfg(feature = "naga-ext")]
"acceleration_structure",
];
pub const BUILTIN_TYPE_GENERATOR_NAMES: &[&str] = &[
"array",
"atomic",
"mat2x2",
"mat2x3",
"mat2x4",
"mat3x2",
"mat3x3",
"mat3x4",
"mat4x2",
"mat4x3",
"mat4x4",
"ptr",
"texture_1d",
"texture_2d",
"texture_2d_array",
"texture_3d",
"texture_cube",
"texture_cube_array",
"texture_multisampled_2d",
"texture_storage_1d",
"texture_storage_2d",
"texture_storage_2d_array",
"texture_storage_3d",
"vec2",
"vec3",
"vec4",
#[cfg(feature = "naga-ext")]
"binding_array",
#[cfg(feature = "naga-ext")]
"texture_1d_array",
#[cfg(feature = "naga-ext")]
"texture_storage_1d_array",
#[cfg(feature = "naga-ext")]
"texture_multisampled_2d_array",
];
pub const BUILTIN_STRUCT_NAMES: &[&str] = &[
"__frexp_result_f32",
"__frexp_result_f16",
"__frexp_result_abstract",
"__frexp_result_vec2_f32",
"__frexp_result_vec3_f32",
"__frexp_result_vec4_f32",
"__frexp_result_vec2_f16",
"__frexp_result_vec3_f16",
"__frexp_result_vec4_f16",
"__frexp_result_vec2_abstract",
"__frexp_result_vec3_abstract",
"__frexp_result_vec4_abstract",
"__modf_result_f32",
"__modf_result_f16",
"__modf_result_abstract",
"__modf_result_vec2_f32",
"__modf_result_vec3_f32",
"__modf_result_vec4_f32",
"__modf_result_vec2_f16",
"__modf_result_vec3_f16",
"__modf_result_vec4_f16",
"__modf_result_vec2_abstract",
"__modf_result_vec3_abstract",
"__modf_result_vec4_abstract",
"__atomic_compare_exchange_result",
#[cfg(feature = "naga-ext")]
"RayDesc",
#[cfg(feature = "naga-ext")]
"RayIntersection",
];
pub const BUILTIN_DECLARATION_NAMES: &[&str] = &[
#[cfg(feature = "naga-ext")]
"RAY_FLAG_NONE", #[cfg(feature = "naga-ext")]
"RAY_FLAG_FORCE_OPAQUE", #[cfg(feature = "naga-ext")]
"RAY_FLAG_FORCE_NO_OPAQUE", #[cfg(feature = "naga-ext")]
"RAY_FLAG_TERMINATE_ON_FIRST_HIT", #[cfg(feature = "naga-ext")]
"RAY_FLAG_SKIP_CLOSEST_HIT_SHADER", #[cfg(feature = "naga-ext")]
"RAY_FLAG_CULL_BACK_FACING", #[cfg(feature = "naga-ext")]
"RAY_FLAG_CULL_FRONT_FACING", #[cfg(feature = "naga-ext")]
"RAY_FLAG_CULL_OPAQUE", #[cfg(feature = "naga-ext")]
"RAY_FLAG_CULL_NO_OPAQUE", #[cfg(feature = "naga-ext")]
"RAY_FLAG_SKIP_TRIANGLES", #[cfg(feature = "naga-ext")]
"RAY_FLAG_SKIP_AABBS", #[cfg(feature = "naga-ext")]
"RAY_QUERY_INTERSECTION_NONE", #[cfg(feature = "naga-ext")]
"RAY_QUERY_INTERSECTION_TRIANGLE", #[cfg(feature = "naga-ext")]
"RAY_QUERY_INTERSECTION_GENERATED", #[cfg(feature = "naga-ext")]
"RAY_QUERY_INTERSECTION_AABB", ];
pub const BUILTIN_ALIAS_NAMES: &[&str] = &[
"vec2i", "vec3i", "vec4i", "vec2u", "vec3u", "vec4u", "vec2f", "vec3f", "vec4f", "vec2h",
"vec3h", "vec4h", "mat2x2f", "mat2x3f", "mat2x4f", "mat3x2f", "mat3x3f", "mat3x4f", "mat4x2f",
"mat4x3f", "mat4x4f", "mat2x2h", "mat2x3h", "mat2x4h", "mat3x2h", "mat3x3h", "mat3x4h",
"mat4x2h", "mat4x3h", "mat4x4h",
];
pub const BUILTIN_ENUMERANT_NAMES: &[&str] = &[
"read",
"write",
"read_write",
"function",
"private",
"workgroup",
"uniform",
"storage",
#[cfg(feature = "naga-ext")]
"push_constant",
"rgba8unorm",
"rgba8snorm",
"rgba8uint",
"rgba8sint",
"rgba16uint",
"rgba16sint",
"rgba16float",
"r32uint",
"r32sint",
"r32float",
"rg32uint",
"rg32sint",
"rg32float",
"rgba32uint",
"rgba32sint",
"rgba32float",
"bgra8unorm",
#[cfg(feature = "naga-ext")]
"r8unorm",
#[cfg(feature = "naga-ext")]
"r8snorm",
#[cfg(feature = "naga-ext")]
"r8uint",
#[cfg(feature = "naga-ext")]
"r8sint",
#[cfg(feature = "naga-ext")]
"r16unorm",
#[cfg(feature = "naga-ext")]
"r16snorm",
#[cfg(feature = "naga-ext")]
"r16uint",
#[cfg(feature = "naga-ext")]
"r16sint",
#[cfg(feature = "naga-ext")]
"r16float",
#[cfg(feature = "naga-ext")]
"rg8unorm",
#[cfg(feature = "naga-ext")]
"rg8snorm",
#[cfg(feature = "naga-ext")]
"rg8uint",
#[cfg(feature = "naga-ext")]
"rg8sint",
#[cfg(feature = "naga-ext")]
"rg16unorm",
#[cfg(feature = "naga-ext")]
"rg16snorm",
#[cfg(feature = "naga-ext")]
"rg16uint",
#[cfg(feature = "naga-ext")]
"rg16sint",
#[cfg(feature = "naga-ext")]
"rg16float",
#[cfg(feature = "naga-ext")]
"rgb10a2uint",
#[cfg(feature = "naga-ext")]
"rgb10a2unorm",
#[cfg(feature = "naga-ext")]
"rg11b10float",
#[cfg(feature = "naga-ext")]
"r64uint",
#[cfg(feature = "naga-ext")]
"rgba16unorm",
#[cfg(feature = "naga-ext")]
"rgba16snorm",
#[cfg(feature = "naga-ext")]
"vertex_return", ];
pub const BUILTIN_FUNCTION_NAMES: &[&str] = &[
"bitcast",
"all",
"any",
"select",
"arrayLength",
"abs",
"acos",
"acosh",
"asin",
"asinh",
"atan",
"atanh",
"atan2",
"ceil",
"clamp",
"cos",
"cosh",
"countLeadingZeros",
"countOneBits",
"countTrailingZeros",
"cross",
"degrees",
"determinant",
"distance",
"dot",
"dot4U8Packed",
"exp",
"exp2",
"extractBits",
"faceForward",
"firstLeadingBit",
"firstTrailingBit",
"floor",
"fma",
"fract",
"frexp",
"insertBits",
"inverseSqrt",
"ldexp",
"length",
"log",
"log2",
"max",
"min",
"mix",
"modf",
"normalize",
"pow",
"quantizeToF16",
"radians",
"reflect",
"refract",
"reverseBits",
"round",
"saturate",
"sign",
"sin",
"sinh",
"smoothstep",
"sqrt",
"step",
"tan",
"tanh",
"transpose",
"trunc",
"dpdx",
"dpdxCoarse",
"dpdxFine",
"dpdy",
"dpdyCoarse",
"dpdyFine",
"fwidth",
"fwidthCoarse",
"fwidthFine",
"textureDimensions",
"textureGather",
"textureGatherCompare",
"textureLoad",
"textureNumLayers",
"textureNumLevels",
"textureNumSamples",
"textureSample",
"textureSampleBias",
"textureSampleCompare",
"textureSampleCompareLevel",
"textureSampleGrad",
"textureSampleLevel",
"textureSampleBaseClampToEdge",
"textureStore",
"atomicLoad",
"atomicStore",
"atomicAdd",
"atomicSub",
"atomicMax",
"atomicMin",
"atomicAnd",
"atomicOr",
"atomicXor",
"atomicExchange",
"atomicCompareExchangeWeak",
"pack4x8snorm",
"pack4x8unorm",
"pack4xI8",
"pack4xU8",
"pack4xI8Clamp",
"pack4xU8Clamp",
"pack2x16snorm",
"pack2x16unorm",
"pack2x16float",
"unpack4x8snorm",
"unpack4x8unorm",
"unpack4xI8",
"unpack4xU8",
"unpack2x16snorm",
"unpack2x16unorm",
"unpack2x16float",
"storageBarrier",
"textureBarrier",
"workgroupBarrier",
"workgroupUniformLoad",
"subgroupAdd",
"subgroupExclusiveAdd",
"subgroupInclusiveAdd",
"subgroupAll",
"subgroupAnd",
"subgroupAny",
"subgroupBallot",
"subgroupBroadcast",
"subgroupBroadcastFirst",
"subgroupElect",
"subgroupMax",
"subgroupMin",
"subgroupMul",
"subgroupExclusiveMul",
"subgroupInclusiveMul",
"subgroupOr",
"subgroupShuffle",
"subgroupShuffleDown",
"subgroupShuffleUp",
"subgroupShuffleXor",
"subgroupXor",
"quadBroadcast",
"quadSwapDiagonal",
"quadSwapX",
"quadSwapY",
#[cfg(feature = "naga-ext")]
"rayQueryInitialize",
#[cfg(feature = "naga-ext")]
"rayQueryProceed",
#[cfg(feature = "naga-ext")]
"rayQueryGenerateIntersection",
#[cfg(feature = "naga-ext")]
"rayQueryConfirmIntersection",
#[cfg(feature = "naga-ext")]
"rayQueryTerminate",
#[cfg(feature = "naga-ext")]
"rayQueryGetCommittedIntersection",
#[cfg(feature = "naga-ext")]
"rayQueryGetCandidateIntersection",
#[cfg(feature = "naga-ext")]
"getCommittedHitVertexPositions",
#[cfg(feature = "naga-ext")]
"getCandidateHitVertexPositions",
];
pub const BUILTIN_CONSTRUCTOR_NAMES: &[&str] = &[
"bool",
"f16",
"f32",
"i32",
"u32",
#[cfg(feature = "naga-ext")]
"i64",
#[cfg(feature = "naga-ext")]
"u64",
#[cfg(feature = "naga-ext")]
"f64",
"array",
"mat2x2",
"mat2x3",
"mat2x4",
"mat3x2",
"mat3x3",
"mat3x4",
"mat4x2",
"mat4x3",
"mat4x4",
"vec2",
"vec3",
"vec4",
"vec2i",
"vec3i",
"vec4i",
"vec2u",
"vec3u",
"vec4u",
"vec2f",
"vec3f",
"vec4f",
"vec2h",
"vec3h",
"vec4h",
"mat2x2f",
"mat2x3f",
"mat2x4f",
"mat3x2f",
"mat3x3f",
"mat3x4f",
"mat4x2f",
"mat4x3f",
"mat4x4f",
"mat2x2h",
"mat2x3h",
"mat2x4h",
"mat3x2h",
"mat3x3h",
"mat3x4h",
"mat4x2h",
"mat4x3h",
"mat4x4h",
#[cfg(feature = "naga-ext")]
"RayDesc",
#[cfg(feature = "naga-ext")]
"RayIntersection",
];
pub fn iter_builtin_idents() -> impl Iterator<Item = &'static str> {
itertools::chain!(
BUILTIN_TYPE_NAMES.iter(),
BUILTIN_TYPE_GENERATOR_NAMES.iter(),
BUILTIN_STRUCT_NAMES.iter(),
BUILTIN_DECLARATION_NAMES.iter(),
BUILTIN_ALIAS_NAMES.iter(),
BUILTIN_ENUMERANT_NAMES.iter(),
BUILTIN_FUNCTION_NAMES.iter(),
BUILTIN_CONSTRUCTOR_NAMES.iter(),
)
.map(|s| *s)
}
pub const RESERVED_WORDS: &[&str] = &[
"NULL",
"Self",
"abstract",
"active",
"alignas",
"alignof",
"as",
"asm",
"asm_fragment",
"async",
"attribute",
"auto",
"await",
"become",
#[cfg(not(feature = "naga-ext"))]
"binding_array",
"cast",
"catch",
"class",
"co_await",
"co_return",
"co_yield",
"coherent",
"column_major",
"common",
"compile",
"compile_fragment",
"concept",
"const_cast",
"consteval",
"constexpr",
"constinit",
"crate",
"debugger",
"decltype",
"delete",
"demote",
"demote_to_helper",
"do",
"dynamic_cast",
"enum",
"explicit",
"export",
"extends",
"extern",
"external",
"fallthrough",
"filter",
"final",
"finally",
"friend",
"from",
"fxgroup",
"get",
"goto",
"groupshared",
"highp",
"impl",
"implements",
"import",
"inline",
"instanceof",
"interface",
"layout",
"lowp",
"macro",
"macro_rules",
"match",
"mediump",
"meta",
"mod",
"module",
"move",
"mut",
"mutable",
"namespace",
"new",
"nil",
"noexcept",
"noinline",
"nointerpolation",
"non_coherent",
"noncoherent",
"noperspective",
"null",
"nullptr",
"of",
"operator",
"package",
"packoffset",
"partition",
"pass",
"patch",
"pixelfragment",
"precise",
"precision",
"premerge",
"priv",
"protected",
"pub",
"public",
"readonly",
"ref",
"regardless",
"register",
"reinterpret_cast",
"require",
"resource",
"restrict",
"self",
"set",
"shared",
"sizeof",
"smooth",
"snorm",
"static",
"static_assert",
"static_cast",
"std",
"subroutine",
"super",
"target",
"template",
"this",
"thread_local",
"throw",
"trait",
"try",
"type",
"typedef",
"typeid",
"typename",
"typeof",
"union",
"unless",
"unorm",
"unsafe",
"unsized",
"use",
"using",
"varying",
"virtual",
"volatile",
"wgsl",
"where",
"with",
"writeonly",
"yield",
];