Skip to main content

tokmd_analysis_types/
receipt.rs

1//! Top-level analysis receipt DTO.
2//!
3//! This module owns the serde-stable analysis receipt envelope. Public
4//! consumers should keep using the crate-root `AnalysisReceipt` re-export.
5
6use serde::{Deserialize, Serialize};
7use tokmd_types::{ScanStatus, ToolInfo};
8
9use crate::{
10    AnalysisArgsMeta, AnalysisSource, ApiSurfaceReport, Archetype, AssetReport, ComplexityReport,
11    CorporateFingerprint, DependencyReport, DerivedReport, DuplicateReport, EffortEstimateReport,
12    EntropyReport, FunReport, GitReport, ImportReport, LicenseReport, PredictiveChurnReport,
13    TopicClouds,
14};
15
16#[derive(Debug, Clone, Serialize, Deserialize)]
17pub struct AnalysisReceipt {
18    pub schema_version: u32,
19    pub generated_at_ms: u128,
20    pub tool: ToolInfo,
21    pub mode: String,
22    pub status: ScanStatus,
23    pub warnings: Vec<String>,
24    pub source: AnalysisSource,
25    pub args: AnalysisArgsMeta,
26    pub archetype: Option<Archetype>,
27    pub topics: Option<TopicClouds>,
28    pub entropy: Option<EntropyReport>,
29    pub predictive_churn: Option<PredictiveChurnReport>,
30    pub corporate_fingerprint: Option<CorporateFingerprint>,
31    pub license: Option<LicenseReport>,
32    pub derived: Option<DerivedReport>,
33    pub assets: Option<AssetReport>,
34    pub deps: Option<DependencyReport>,
35    pub git: Option<GitReport>,
36    pub imports: Option<ImportReport>,
37    pub dup: Option<DuplicateReport>,
38    pub complexity: Option<ComplexityReport>,
39    pub api_surface: Option<ApiSurfaceReport>,
40    pub effort: Option<EffortEstimateReport>,
41    pub fun: Option<FunReport>,
42}