Skip to main content

Crate descendit

Crate descendit 

Source
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.