pub struct StaleSuppression {
pub path: PathBuf,
pub line: u32,
pub col: u32,
pub origin: SuppressionOrigin,
pub missing_reason: bool,
pub finding_id: Option<String>,
pub actions: Vec<IssueAction>,
pub effective_severity: Option<EffectiveSeverity>,
}Expand description
A suppression comment or JSDoc tag that no longer matches any issue.
Fields§
§path: PathBufFile containing the stale suppression.
line: u321-based line number of the suppression comment or tag.
col: u320-based byte column offset.
origin: SuppressionOriginThe origin and details of the stale suppression.
missing_reason: boolTrue when rules.require-suppression-reason reported a suppression
comment or tag that has no reason.
finding_id: Option<String>Stable id of this finding: dc1:<rule>:<16 hex digits>, with a
~<k> suffix when several findings of one type share an identity.
Line and column are not inputs, so the id survives line shifts,
reformats and reorders. A rename of the file or the symbol gives a
new id. Absent in output from older versions.
actions: Vec<IssueAction>Suggested next steps. Always emitted.
effective_severity: Option<EffectiveSeverity>Gate severity of this finding after rules and overrides[].rules
resolve for its path. CI formats read it for the annotation, SARIF
and CodeClimate level. Absent in output from older versions. Not
part of the finding identity, baseline keys or fingerprints.
Implementations§
Source§impl StaleSuppression
impl StaleSuppression
Sourcepub fn actions_for(missing_reason: bool) -> Vec<IssueAction>
pub fn actions_for(missing_reason: bool) -> Vec<IssueAction>
Build the typed action list for this suppression finding.
Sourcepub fn description(&self) -> String
pub fn description(&self) -> String
Produce a human-readable description of this stale suppression.
Sourcepub fn explanation(&self) -> String
pub fn explanation(&self) -> String
Produce an explanation of why this suppression is stale.
For comment suppressions where kind_known == false, surfaces the
unknown token plus a Levenshtein “did you mean?” hint when one is
within edit distance 2. Other tokens on the same comment line still
apply normally (see issue #449).
Sourcepub fn display_message(&self) -> String
pub fn display_message(&self) -> String
Per-format display message combining description() and explanation()
for the unknown-kind case so SARIF, CodeClimate, and compact consumers
surface the typo-fix copy and Levenshtein hint without needing to
branch on origin.kind_known themselves. Stale-but-known and JSDoc
origins keep the bare description() so existing wire bytes stay
unchanged. See issue #449.
Trait Implementations§
Source§impl Clone for StaleSuppression
impl Clone for StaleSuppression
Source§fn clone(&self) -> StaleSuppression
fn clone(&self) -> StaleSuppression
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for StaleSuppression
impl Debug for StaleSuppression
Source§impl<'de> Deserialize<'de> for StaleSuppression
impl<'de> Deserialize<'de> for StaleSuppression
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<StaleSuppression, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<StaleSuppression, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl GatedFinding for StaleSuppression
impl GatedFinding for StaleSuppression
Source§fn effective_severity(&self) -> Option<EffectiveSeverity>
fn effective_severity(&self) -> Option<EffectiveSeverity>
None when no value was written.Source§fn set_effective_severity(&mut self, severity: Option<EffectiveSeverity>)
fn set_effective_severity(&mut self, severity: Option<EffectiveSeverity>)
Source§impl IdentifiedFinding for StaleSuppression
impl IdentifiedFinding for StaleSuppression
Source§fn rule_token(&self) -> &'static str
fn rule_token(&self) -> &'static str
Source§fn identity_parts(&self, p: &IdentityPaths<'_>) -> Vec<String>
fn identity_parts(&self, p: &IdentityPaths<'_>) -> Vec<String>
Source§fn tiebreak_position(&self) -> (u32, u32, u32)
fn tiebreak_position(&self) -> (u32, u32, u32)
Source§fn finding_id(&self) -> Option<&str>
fn finding_id(&self) -> Option<&str>
None before the stamping pass.Source§fn set_finding_id(&mut self, id: Option<String>)
fn set_finding_id(&mut self, id: Option<String>)
Source§fn canonical_key(&self, paths: &IdentityPaths<'_>) -> String
fn canonical_key(&self, paths: &IdentityPaths<'_>) -> String
dead_code_canonical_key.Source§impl JsonSchema for StaleSuppression
impl JsonSchema for StaleSuppression
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl RuleSeverity for StaleSuppression
impl RuleSeverity for StaleSuppression
Source§fn rule_severity(&self, source: &SeveritySource<'_>) -> Severity
fn rule_severity(&self, source: &SeveritySource<'_>) -> Severity
source.Source§fn uniform_severity(source: &SeveritySource<'_>) -> Option<Severity>
fn uniform_severity(source: &SeveritySource<'_>) -> Option<Severity>
source, or
None when the severity can differ from finding to finding. Read moreSource§impl Serialize for StaleSuppression
impl Serialize for StaleSuppression
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Auto Trait Implementations§
impl Freeze for StaleSuppression
impl RefUnwindSafe for StaleSuppression
impl Send for StaleSuppression
impl Sync for StaleSuppression
impl Unpin for StaleSuppression
impl UnsafeUnpin for StaleSuppression
impl UnwindSafe for StaleSuppression
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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
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