pub struct PropDrillingChainFinding {
pub chain: PropDrillingChain,
pub finding_id: Option<String>,
pub actions: Vec<IssueAction>,
pub introduced: Option<AuditIntroduced>,
pub effective_severity: Option<EffectiveSeverity>,
}Expand description
Wire-shape envelope for a PropDrillingChain finding. There is no safe
auto-fix: collapsing a drilling chain (colocate the consumer, lift to a
context, or compose the component) is a design decision. The only action is a
line-level suppress at the source hop’s prop declaration. The rule defaults
to off (opt-in health signal), so this finding is dormant by default.
Fields§
§chain: PropDrillingChainThe underlying located chain.
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 (possibly empty for forward-compat).
introduced: Option<AuditIntroduced>Set by the audit pass when this finding is introduced relative to the merge-base.
effective_severity: Option<EffectiveSeverity>Rule severity after resolving overrides for the source hop. An explicit
error enforces the chain; warn stays advisory under strict flags.
Saved reports use this value for CI levels. Absent in older output.
Not part of finding identity, baseline keys or fingerprints.
Implementations§
Source§impl PropDrillingChainFinding
impl PropDrillingChainFinding
Sourcepub fn with_actions(chain: PropDrillingChain) -> PropDrillingChainFinding
pub fn with_actions(chain: PropDrillingChain) -> PropDrillingChainFinding
Build the wrapper from a raw PropDrillingChain. Emits only a
line-level suppress action anchored at the source hop: there is no safe
auto-fix because collapsing the chain is a design decision (colocate,
lift to context, or compose).
Trait Implementations§
Source§impl Clone for PropDrillingChainFinding
impl Clone for PropDrillingChainFinding
Source§fn clone(&self) -> PropDrillingChainFinding
fn clone(&self) -> PropDrillingChainFinding
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 PropDrillingChainFinding
impl Debug for PropDrillingChainFinding
Source§impl<'de> Deserialize<'de> for PropDrillingChainFinding
impl<'de> Deserialize<'de> for PropDrillingChainFinding
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<PropDrillingChainFinding, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<PropDrillingChainFinding, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl GatedFinding for PropDrillingChainFinding
impl GatedFinding for PropDrillingChainFinding
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 PropDrillingChainFinding
impl IdentifiedFinding for PropDrillingChainFinding
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 PropDrillingChainFinding
impl JsonSchema for PropDrillingChainFinding
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 PropDrillingChainFinding
impl RuleSeverity for PropDrillingChainFinding
Source§fn rule_severity(&self, source: &SeveritySource<'_>) -> Severity
fn rule_severity(&self, source: &SeveritySource<'_>) -> Severity
source.Source§fn uniform_severity(_source: &SeveritySource<'_>) -> Option<Severity>where
Self: Sized,
fn uniform_severity(_source: &SeveritySource<'_>) -> Option<Severity>where
Self: Sized,
source, or
None when the severity can differ from finding to finding. Read moreSource§impl Serialize for PropDrillingChainFinding
impl Serialize for PropDrillingChainFinding
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 PropDrillingChainFinding
impl RefUnwindSafe for PropDrillingChainFinding
impl Send for PropDrillingChainFinding
impl Sync for PropDrillingChainFinding
impl Unpin for PropDrillingChainFinding
impl UnsafeUnpin for PropDrillingChainFinding
impl UnwindSafe for PropDrillingChainFinding
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