blob: 9948d1cfb92ceea331e95667bce4a7c8989a5635 [file] [log] [blame]
dan sinclairb5af23d2023-02-19 17:34:44 +00001{{- /*
2--------------------------------------------------------------------------------
3Template file for use with tools/src/cmd/gen to generate diagnostic_control.h
4
5See:
6* tools/src/cmd/gen for structures used by this template
7* https://golang.org/pkg/text/template/ for documentation on the template syntax
8--------------------------------------------------------------------------------
9*/ -}}
10
Ben Clayton11653892023-09-19 19:15:59 +000011{{- $I := LoadIntrinsics "src/tint/lang/wgsl/wgsl.def" -}}
dan sinclair22b4dd22023-07-21 00:40:07 +000012{{- Import "src/tint/utils/templates/enums.tmpl.inc" -}}
dan sinclairb5af23d2023-02-19 17:34:44 +000013
Ben Clayton11653892023-09-19 19:15:59 +000014#ifndef SRC_TINT_LANG_WGSL_DIAGNOSTIC_RULE_H_
15#define SRC_TINT_LANG_WGSL_DIAGNOSTIC_RULE_H_
dan sinclairb5af23d2023-02-19 17:34:44 +000016
Stephan Hartmann9141e912023-08-14 15:56:22 +000017#include <cstdint>
dan sinclairb5af23d2023-02-19 17:34:44 +000018#include <string>
Ben Clayton7883a0c2023-04-20 23:51:53 +000019#include <variant>
dan sinclairb5af23d2023-02-19 17:34:44 +000020
Ben Clayton68919602023-07-28 22:51:18 +000021#include "src/tint/utils/traits/traits.h"
dan sinclair6cc183c2023-03-02 21:28:45 +000022
Ben Clayton11653892023-09-19 19:15:59 +000023namespace tint::wgsl {
dan sinclairb5af23d2023-02-19 17:34:44 +000024
Ben Clayton7883a0c2023-04-20 23:51:53 +000025/// WGSL core diagnostic rules.
Ben Clayton2dffb3c2023-08-07 12:35:33 +000026{{ Eval "DeclareEnum" ($I.Sem.Enum "core_diagnostic_rule") }}
Ben Clayton7883a0c2023-04-20 23:51:53 +000027
28/// Chromium-specific diagnostic rules.
Ben Clayton2dffb3c2023-08-07 12:35:33 +000029{{ Eval "DeclareEnum" ($I.Sem.Enum "chromium_diagnostic_rule") }}
Ben Clayton7883a0c2023-04-20 23:51:53 +000030
31/// All diagnostic rules understood by Tint.
32using DiagnosticRule = std::variant<CoreDiagnosticRule, ChromiumDiagnosticRule>;
dan sinclairb5af23d2023-02-19 17:34:44 +000033
Ben Clayton11653892023-09-19 19:15:59 +000034} // namespace tint::wgsl
dan sinclairb5af23d2023-02-19 17:34:44 +000035
Ben Clayton11653892023-09-19 19:15:59 +000036#endif // SRC_TINT_LANG_WGSL_DIAGNOSTIC_RULE_H_