Skip to main content

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}