Skip to main content

microcad_lang_base/diag/
level.rs

1// Copyright © 2024-2026 The µcad authors <info@microcad.xyz>
2// SPDX-License-Identifier: AGPL-3.0-or-later
3
4/// The level of the diagnostic.
5///
6/// Levels have a priority in order.
7#[derive(Debug, Clone, PartialEq)]
8pub enum Level {
9    /// Trace message (highest diagnosis level).
10    Trace,
11    /// Informative message.
12    Info,
13    /// Warning message.
14    Warning,
15    /// Error (lowest diagnosis level).
16    Error,
17}
18
19impl std::fmt::Display for Level {
20    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
21        match self {
22            Level::Trace => write!(f, "trace"),
23            Level::Error => write!(f, "error"),
24            Level::Warning => write!(f, "warning"),
25            Level::Info => write!(f, "info"),
26        }
27    }
28}