alpm_lint/level.rs
1#[cfg(feature = "cli")]
2use clap::ValueEnum;
3#[cfg(feature = "serde")]
4use serde::{Deserialize, Serialize};
5use strum::{Display as StrumDisplay, VariantArray};
6
7/// Represents the severity level of a lint.
8///
9/// The level of a lint can be overwritten via CLI flags and configuration files.
10#[derive(Clone, Copy, Debug, PartialEq, PartialOrd, StrumDisplay, VariantArray)]
11#[cfg_attr(feature = "cli", derive(ValueEnum))]
12#[cfg_attr(feature = "serde", derive(Deserialize, Serialize))]
13#[strum(serialize_all = "lowercase")]
14pub enum Level {
15 /// Lint rules leading to errors.
16 ///
17 /// Lint rules with this severity level are used when encountering broken or invalid data.
18 Error = 1,
19 /// Lint rules leading to denials.
20 ///
21 /// Lint rules with this severity level always represent bad practices or severe errors.
22 Deny = 2,
23 /// Lint rules leading to warnings.
24 ///
25 /// Lint rules with this severity level indicate a mistake or misconfiguration and are
26 /// considered to be detectable with a high degree of certainty.
27 Warn = 3,
28 /// Lint rules leading to suggestions.
29 ///
30 /// Lint rules with this severity level are used to suggest best practices, which when not
31 /// followed do not lead to functional issues.
32 Suggest = 4,
33}