#[macro_export]
macro_rules! declare_variable_severity_lint {
($(#[$attr:meta])* $vis: vis, $NAME: ident, $NAME_DENY: ident, $NAME_WARN: ident, $desc: expr) => (
$(#[$attr])*
$vis static $NAME_DENY: &rustc_session::lint::Lint = &rustc_session::lint::Lint {
name: stringify!($NAME), default_level: rustc_session::lint::Level::Deny, desc: $desc, is_externally_loaded: false,
..rustc_session::lint::Lint::default_fields_for_macro() };
$(#[$attr])*
$vis static $NAME_WARN: &rustc_session::lint::Lint = &rustc_session::lint::Lint {
name: stringify!($NAME), default_level: rustc_session::lint::Level::Warn, desc: $desc, is_externally_loaded: false,
..rustc_session::lint::Lint::default_fields_for_macro() };
#[allow(non_camel_case_types)]
$vis struct $NAME;
impl $NAME {
pub fn get_by_severity(severity: cargo_pup_lint_config::Severity) -> &'static rustc_session::lint::Lint {
match severity {
cargo_pup_lint_config::Severity::Warn => $NAME_WARN,
cargo_pup_lint_config::Severity::Error => $NAME_DENY,
}
}
}
);
}