move(naga)!: move WGSL-specific diagnostic_filter stuff to naga::front::wgsl

This commit is contained in:
Erich Gubler 2024-11-05 09:21:47 -05:00
parent 66d2ac6f5d
commit e6f52bf46d
3 changed files with 39 additions and 33 deletions

View File

@ -27,22 +27,6 @@ pub enum Severity {
} }
impl Severity { impl Severity {
const ERROR: &'static str = "error";
const WARNING: &'static str = "warning";
const INFO: &'static str = "info";
const OFF: &'static str = "off";
/// Convert from a sentinel word in WGSL into its associated [`Severity`], if possible.
pub fn from_wgsl_ident(s: &str) -> Option<Self> {
Some(match s {
Self::ERROR => Self::Error,
Self::WARNING => Self::Warning,
Self::INFO => Self::Info,
Self::OFF => Self::Off,
_ => return None,
})
}
/// Checks whether this severity is [`Self::Error`]. /// Checks whether this severity is [`Self::Error`].
/// ///
/// Naga does not yet support diagnostic items at lesser severities than /// Naga does not yet support diagnostic items at lesser severities than
@ -79,23 +63,6 @@ pub enum FilterableTriggeringRule {
} }
impl FilterableTriggeringRule { impl FilterableTriggeringRule {
const DERIVATIVE_UNIFORMITY: &'static str = "derivative_uniformity";
/// Convert from a sentinel word in WGSL into its associated [`FilterableTriggeringRule`], if possible.
pub fn from_wgsl_ident(s: &str) -> Option<Self> {
Some(match s {
Self::DERIVATIVE_UNIFORMITY => Self::DerivativeUniformity,
_ => return None,
})
}
/// Maps this [`FilterableTriggeringRule`] into the sentinel word associated with it in WGSL.
pub const fn to_wgsl_ident(self) -> &'static str {
match self {
Self::DerivativeUniformity => Self::DERIVATIVE_UNIFORMITY,
}
}
/// The default severity associated with this triggering rule. /// The default severity associated with this triggering rule.
/// ///
/// See <https://www.w3.org/TR/WGSL/#filterable-triggering-rules> for a table of default /// See <https://www.w3.org/TR/WGSL/#filterable-triggering-rules> for a table of default

View File

@ -0,0 +1,38 @@
use crate::diagnostic_filter::{FilterableTriggeringRule, Severity};
impl Severity {
const ERROR: &'static str = "error";
const WARNING: &'static str = "warning";
const INFO: &'static str = "info";
const OFF: &'static str = "off";
/// Convert from a sentinel word in WGSL into its associated [`Severity`], if possible.
pub fn from_wgsl_ident(s: &str) -> Option<Self> {
Some(match s {
Self::ERROR => Self::Error,
Self::WARNING => Self::Warning,
Self::INFO => Self::Info,
Self::OFF => Self::Off,
_ => return None,
})
}
}
impl FilterableTriggeringRule {
const DERIVATIVE_UNIFORMITY: &'static str = "derivative_uniformity";
/// Convert from a sentinel word in WGSL into its associated [`FilterableTriggeringRule`], if possible.
pub fn from_wgsl_ident(s: &str) -> Option<Self> {
Some(match s {
Self::DERIVATIVE_UNIFORMITY => Self::DerivativeUniformity,
_ => return None,
})
}
/// Maps this [`FilterableTriggeringRule`] into the sentinel word associated with it in WGSL.
pub const fn to_wgsl_ident(self) -> &'static str {
match self {
Self::DerivativeUniformity => Self::DERIVATIVE_UNIFORMITY,
}
}
}

View File

@ -4,6 +4,7 @@ Frontend for [WGSL][wgsl] (WebGPU Shading Language).
[wgsl]: https://gpuweb.github.io/gpuweb/wgsl.html [wgsl]: https://gpuweb.github.io/gpuweb/wgsl.html
*/ */
mod diagnostic_filter;
mod error; mod error;
mod index; mod index;
mod lower; mod lower;