Expand description
descendit — Deterministic structural metrics for Rust source code.
Parses Rust source files using syn and extracts quantifiable metrics
at the function, type, and codebase levels. All analysis is pure and
deterministic: the same source always produces the same report.
§Usage
use std::path::Path;
use descendit::analyze_path;
let report = analyze_path(Path::new("src/")).unwrap();
println!("functions: {}", report.summary.function_count);
println!("max complexity: {}", report.summary.max_cyclomatic);Re-exports§
pub use aggregation::ArtifactAggregation;pub use aggregation::ArtifactAggregationObservation;pub use aggregation::ArtifactSizeWeighting;pub use aggregation::ObjectiveScalarization;pub use aggregation::aggregate_artifact_observations;pub use aggregation::aggregate_artifact_scores;pub use aggregation::scalarize_dimension_scores;pub use analyze::analyze_path;pub use calibration::CalibratedMetric;pub use calibration::CalibrationPolicy;pub use calibration::Calibrator;pub use calibration::SCORE_TOLERANCE;pub use compliance::ComplianceAggregationPolicy;pub use compliance::ComplianceDeltaError;pub use compliance::ComplianceDimension;pub use compliance::ComplianceDimensionPipeline;pub use compliance::CompliancePipelineCohort;pub use compliance::CompliancePipelineObservation;pub use compliance::CompliancePipelineSubjectKind;pub use compliance::CompliancePolicy;pub use compliance::ComplianceReport;pub use compliance::DirectionalScales;pub use compliance::HeatmapContext;pub use compliance::HeatmapEntry;pub use compliance::LossDimension;pub use compliance::LossFunction;pub use compliance::LossMetadata;pub use compliance::ScoringInfo;pub use compliance::compliance_delta_to_loss_vector;pub use compliance::compliance_to_loss_vector;pub use compliance::compute_compliance;pub use compliance::compute_compliance_with_context;pub use compliance::compute_compliance_with_semantic;pub use diff::Assessment;pub use diff::DiffReport;pub use diff::Direction;pub use diff::LossEntry;pub use diff::LossValueOut;pub use diff::LossVectorOut;pub use diff::MetricDelta;pub use diff::RawMetricEntry;pub use diff::RawMetricValueOut;pub use diff::RawMetricVectorOut;pub use diff::diff_summaries;pub use duplication::DuplicateGroup;pub use duplication::DuplicationReport;pub use duplication::FunctionFingerprint;pub use duplication::FunctionLocation;pub use duplication::NearDuplicatePair;pub use duplication::ShapeToken;pub use experiment::CorpusExperimentResult;pub use experiment::CorpusExperimentRun;pub use experiment::CorpusExperimentTarget;pub use experiment::ExperimentContextStat;pub use experiment::ExperimentDimensionSummary;pub use experiment::ExperimentHeatmapDimensionSummary;pub use experiment::ExperimentHeatmapSummary;pub use experiment::ExperimentResolvedCohort;pub use experiment::run_corpus_experiment;pub use experiment::summarize_heatmap;pub use metrics::AnalysisReport;pub use metrics::EntropyMetrics;pub use metrics::FileEntropy;pub use metrics::FunctionMetrics;pub use metrics::ScopeSegment;pub use metrics::SemanticSummary;pub use metrics::Summary;pub use metrics::TypeKind;pub use metrics::TypeMetrics;pub use metrics::module_path_from_scope;pub use normalization::CohortNormalizationStrategy;pub use normalization::CohortStats;pub use normalization::NormalizationCohort;pub use normalization::NormalizationContext;pub use normalization::NormalizationContextBuilder;pub use normalization::NormalizationPolicy;pub use normalization::NormalizedMetric;pub use normalization::Normalizer;pub use normalization::OnlineStats;pub use rollup::HeatmapTreeNode;pub use rollup::build_heatmap_tree;pub use semantic::CallEdge;pub use semantic::CouplingData;pub use semantic::ResolvedFunctionCardinality;pub use semantic::ResolvedTypeCardinality;pub use semantic::SemanticData;pub use semantic::SemanticOverlay;
Modules§
- aggregation
- Aggregation policies for item-level utilities and cross-dimension scalarization.
- analyze
- AST analysis engine for extracting structural metrics from Rust source.
- calibration
- Calibration helpers for shaping normalized metrics into bounded scores.
- compliance
- Structural compliance scoring.
- diff
- Diff mode and loss vector output for comparing analysis snapshots.
- duplication
- Structural duplication detection for Rust functions.
- experiment
- Helpers for corpus-level scoring experiments.
- explore
- Interactive flamegraph exploration of code-loss heatmap results.
- loss
- Loss dimension implementations.
- metrics
- Metric types for code analysis results.
- normalization
- Normalization helpers for converting raw metric values into comparable scales.
- rollup
- Hierarchical heatmap rollup tree.
- semantic
- Semantic data overlay from the semantic analysis backend.