pub struct InstallTimeRiskReport {
pub schema: String,
pub extension_id: String,
pub composite_risk_tier: RiskTier,
pub composite_risk_score: u8,
pub recommendation: InstallRecommendation,
pub verdict: String,
pub preflight_summary: PreflightSummaryBrief,
pub security_summary: SecuritySummaryBrief,
pub rulebook_version: String,
}Expand description
Composite install-time risk classification report that synthesizes signals from both the compatibility preflight and the security scanner into a single deterministic verdict.
The classification algorithm is purely functional: given the same
PreflightReport and SecurityScanReport, it always produces the
identical InstallTimeRiskReport. No randomness, no side effects.
Fields§
§schema: StringSchema version.
extension_id: StringExtension identifier.
composite_risk_tier: RiskTierComposite risk tier (worst-of across both reports).
composite_risk_score: u8Composite risk score (0 = maximum risk, 100 = clean).
recommendation: InstallRecommendationInstall recommendation derived from composite analysis.
verdict: StringHuman-readable one-line verdict.
preflight_summary: PreflightSummaryBriefCompatibility preflight summary.
security_summary: SecuritySummaryBriefSecurity scan summary.
rulebook_version: StringRulebook version that produced the security findings.
Implementations§
Source§impl InstallTimeRiskReport
impl InstallTimeRiskReport
Sourcepub fn classify(
extension_id: &str,
preflight: &PreflightReport,
security: &SecurityScanReport,
) -> Self
pub fn classify( extension_id: &str, preflight: &PreflightReport, security: &SecurityScanReport, ) -> Self
Build from a preflight report and a security scan report.
The composite risk tier is the worst (lowest ordinal) tier from either report. The composite score is a weighted combination of the preflight confidence and the security finding severity.
This function is pure and deterministic.
Sourcepub const fn should_block(&self) -> bool
pub const fn should_block(&self) -> bool
Whether installation should be blocked.
Sourcepub const fn needs_review(&self) -> bool
pub const fn needs_review(&self) -> bool
Whether manual review is recommended before first run.
Trait Implementations§
Source§impl Clone for InstallTimeRiskReport
impl Clone for InstallTimeRiskReport
Source§fn clone(&self) -> InstallTimeRiskReport
fn clone(&self) -> InstallTimeRiskReport
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for InstallTimeRiskReport
impl Debug for InstallTimeRiskReport
Source§impl<'de> Deserialize<'de> for InstallTimeRiskReport
impl<'de> Deserialize<'de> for InstallTimeRiskReport
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 InstallTimeRiskReport
impl RefUnwindSafe for InstallTimeRiskReport
impl Send for InstallTimeRiskReport
impl Sync for InstallTimeRiskReport
impl Unpin for InstallTimeRiskReport
impl UnsafeUnpin for InstallTimeRiskReport
impl UnwindSafe for InstallTimeRiskReport
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, _span: NoopSpan) -> Self
fn instrument(self, _span: NoopSpan) -> Self
Source§fn in_current_span(self) -> Self
fn in_current_span(self) -> Self
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