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}