melior/diagnostic/
severity.rs1use crate::Error;
2use mlir_sys::{
3 MlirDiagnosticSeverity_MlirDiagnosticError, MlirDiagnosticSeverity_MlirDiagnosticNote,
4 MlirDiagnosticSeverity_MlirDiagnosticRemark, MlirDiagnosticSeverity_MlirDiagnosticWarning,
5};
6
7#[derive(Clone, Copy, Debug)]
9pub enum DiagnosticSeverity {
10 Error,
11 Note,
12 Remark,
13 Warning,
14}
15
16impl TryFrom<u32> for DiagnosticSeverity {
17 type Error = Error;
18
19 fn try_from(severity: u32) -> Result<Self, Error> {
20 #[allow(non_upper_case_globals)]
21 Ok(match severity {
22 MlirDiagnosticSeverity_MlirDiagnosticError => Self::Error,
23 MlirDiagnosticSeverity_MlirDiagnosticNote => Self::Note,
24 MlirDiagnosticSeverity_MlirDiagnosticRemark => Self::Remark,
25 MlirDiagnosticSeverity_MlirDiagnosticWarning => Self::Warning,
26 _ => return Err(Error::UnknownDiagnosticSeverity(severity)),
27 })
28 }
29}