| {{- /* |
| -------------------------------------------------------------------------------- |
| Template file for use with tools/src/cmd/gen to generate language_feature.h |
| |
| See: |
| * tools/src/cmd/gen for structures used by this template |
| * https://golang.org/pkg/text/template/ for documentation on the template syntax |
| -------------------------------------------------------------------------------- |
| */ -}} |
| |
| {{- $I := LoadIntrinsics "src/tint/lang/wgsl/wgsl.def" -}} |
| {{- Import "src/tint/utils/templates/enums.tmpl.inc" -}} |
| {{- $enum := ($I.Sem.Enum "language_feature") -}} |
| |
| #ifndef SRC_TINT_LANG_WGSL_FEATURES_LANGUAGE_FEATURE_H_ |
| #define SRC_TINT_LANG_WGSL_FEATURES_LANGUAGE_FEATURE_H_ |
| |
| #include <cstdint> |
| #include <string> |
| |
| namespace tint::wgsl { |
| |
| /// An enumerator of WGSL language features |
| /// @see src/tint/lang/wgsl/intrinsics.def for language feature descriptions |
| {{ Eval "DeclareEnum" "Enum" $enum "EmitOStream" false}} |
| |
| /// All features |
| static constexpr LanguageFeature kAllLanguageFeatures[] = { |
| {{- range $entry := $enum.Entries }} |
| LanguageFeature::k{{PascalCase $entry.Name}}, |
| {{- end }} |
| }; |
| |
| } // namespace tint::wgsl |
| |
| #endif // SRC_TINT_LANG_WGSL_FEATURES_LANGUAGE_FEATURE_H_ |