pub struct Rule {Show 17 fields
pub id: RuleId,
pub language: Language,
pub severity: Severity,
pub message: String,
pub note: Option<String>,
pub category: Option<Category>,
pub fix: Option<String>,
pub rule: Value,
pub metric: Option<Metric>,
pub threshold: Option<f64>,
pub source_dir: Option<PathBuf>,
pub files: Option<Vec<String>>,
pub ignores: Option<Vec<String>>,
pub enabled: bool,
pub skip_test_code: bool,
pub tests: Option<RuleTests>,
pub ai_check: Option<AiCheck>,
}Fields§
§id: RuleId§language: Language§severity: Severity§message: String§note: Option<String>§category: Option<Category>§fix: Option<String>§rule: Value§metric: Option<Metric>File-level metric evaluated instead of rule. Mutually exclusive with it.
threshold: Option<f64>The value metric must exceed for the rule to fire. Required with metric.
source_dir: Option<PathBuf>Directory a custom rule was loaded from, used to resolve test fixture
paths. None for builtin rules, which resolve against BuiltinRules.
files: Option<Vec<String>>§ignores: Option<Vec<String>>§enabled: boolDrop findings located inside #[cfg(test)] blocks of scanned Rust files.
Complements ignores, which only filters whole files by path.
skip_test_code: bool§tests: Option<RuleTests>§ai_check: Option<AiCheck>When set, matches of rule are candidates confirmed by an LLM before
being reported. See AiCheck. The AST scanner ignores this field.
Implementations§
Source§impl Rule
impl Rule
Sourcepub fn effective_category(&self) -> Category
pub fn effective_category(&self) -> Category
The rule’s category, resolving an unset category to the default
(Correctness), the way the scanner treats it.
Sourcepub fn is_metric(&self) -> bool
pub fn is_metric(&self) -> bool
Whether this rule measures a file-level metric instead of matching AST.
Sourcepub fn metric_spec(&self) -> Option<(Metric, f64)>
pub fn metric_spec(&self) -> Option<(Metric, f64)>
The metric and threshold of a file-level rule, None for AST rules.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Rule
impl<'de> Deserialize<'de> for Rule
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for Rule
impl RefUnwindSafe for Rule
impl Send for Rule
impl Sync for Rule
impl Unpin for Rule
impl UnsafeUnpin for Rule
impl UnwindSafe for Rule
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more