Skip to main content

decy_ownership/
lib.rs

1//! Ownership and lifetime inference for C-to-Rust conversion.
2//!
3//! **CRITICAL COMPONENT**: This is the most important module for quality transpilation.
4//! Infers Rust ownership patterns and lifetime annotations from C pointer usage.
5//!
6//! # ML-Enhanced Features (DECY-ML-001, DECY-ML-003)
7//!
8//! This crate includes ML-enhanced ownership inference features:
9//! - [`OwnershipFeatures`]: 142-dimension feature vector for batch ML processing
10//! - [`OwnershipDefect`]: 8-category defect taxonomy (DECY-O-001 through DECY-O-008)
11//! - [`InferredOwnership`]: Predicted Rust ownership kinds
12//! - [`OwnershipPrediction`]: Ownership with confidence score and fallback
13
14#![warn(missing_docs)]
15#![warn(clippy::all)]
16#![deny(unsafe_code)]
17
18pub mod ab_testing;
19pub mod active_learning;
20pub mod array_slice;
21pub mod borrow_gen;
22pub mod classifier;
23pub mod classifier_integration;
24pub mod dataflow;
25pub mod error_tracking;
26pub mod hybrid_classifier;
27pub mod inference;
28pub mod lifetime;
29pub mod lifetime_gen;
30pub mod ml_features;
31pub mod model_versioning;
32pub mod retraining_pipeline;
33pub mod struct_lifetime;
34pub mod threshold_tuning;
35pub mod training_data;
36
37// Re-export ML feature types at crate root for convenience
38pub use ml_features::{
39    default_pattern_library, AllocationKind, ErrorPattern, ErrorSeverity, FeatureExtractor,
40    InferredOwnership, OwnershipDefect, OwnershipErrorKind, OwnershipFeatures,
41    OwnershipFeaturesBuilder, OwnershipPrediction, PatternLibrary, Severity, SuggestedFix,
42};
43
44// Re-export hybrid classifier types
45pub use hybrid_classifier::{
46    ClassificationMethod, HybridClassifier, HybridMetrics, HybridResult, NullModel, OwnershipModel,
47    DEFAULT_CONFIDENCE_THRESHOLD,
48};
49
50// Re-export A/B testing types (DECY-ML-013)
51pub use ab_testing::{
52    ABExperiment, ABTestRunner, AssignmentStrategy, TestObservation, TestVariant, VariantMetrics,
53};
54
55// Re-export threshold tuning types (DECY-ML-014)
56pub use threshold_tuning::{
57    find_optimal_threshold, SelectionCriteria, ThresholdMetrics, ThresholdTuner, TuningResult,
58    ValidationSample,
59};
60
61// Re-export model versioning types (DECY-ML-017)
62pub use model_versioning::{
63    ModelEntry, ModelQualityMetrics, ModelVersion, ModelVersionManager, QualityThresholds,
64    RollbackResult,
65};
66
67// Re-export active learning types (DECY-ML-016)
68pub use active_learning::{
69    ActiveLearner, QueueStats, SampleQueue, SelectionStrategy, UncertainSample,
70    UncertaintyCalculator,
71};
72
73// Re-export error tracking types (DECY-ML-015)
74pub use error_tracking::{
75    ErrorTracker, FeatureSuspiciousness, ImprovementSuggestion, InferenceError, PatternStats,
76    SuggestionCategory, SuggestionPriority,
77};
78
79// Re-export retraining pipeline types (DECY-ML-018)
80pub use retraining_pipeline::{
81    DataSplit, ModelTrainer, NullTrainer, PipelineExecution, RetrainingConfig, RetrainingPipeline,
82    RetrainingResult, RetrainingSchedule, TrainingMetrics, TrainingSample,
83};
84
85// Re-export training data types (DECY-ML-010)
86pub use training_data::{
87    CollectionResult, DataSource, DatasetStats, LabeledSample, SyntheticConfig,
88    SyntheticDataGenerator, TrainingDataCollector, TrainingDataset,
89};
90
91// Re-export classifier types (DECY-ML-011)
92pub use classifier::{
93    ClassifierEvaluator, ClassifierPrediction, ClassifierTrainer, EnsembleClassifier,
94    EvaluationMetrics, OwnershipClassifier, RuleBasedClassifier, RuleWeights, TrainingConfig,
95    TrainingResult,
96};
97
98// Re-export inference types for hybrid classifier examples
99pub use inference::{OwnershipInference, OwnershipKind};
100
101// Re-export classifier integration types (DECY-182)
102pub use classifier_integration::{
103    classify_function_variables, classify_with_rules, extract_features_for_variable,
104};
105
106#[cfg(test)]
107mod classifier_coverage_tests;
108#[cfg(test)]
109mod lifetime_gen_coverage_tests;
110#[cfg(test)]
111mod ml_features_tests;
112#[cfg(test)]
113mod model_versioning_coverage_tests;
114#[cfg(test)]
115mod ownership_coverage_tests;
116#[cfg(test)]
117#[path = "pattern_library_tests.rs"]
118mod pattern_library_tests;
119#[cfg(test)]
120mod ab_testing_coverage_tests;
121#[cfg(test)]
122mod ml_stmt_coverage_tests;
123#[cfg(test)]
124mod model_versioning_deep_tests;
125#[cfg(test)]
126mod deep_coverage_tests;
127#[cfg(test)]
128mod pipeline_inference_tests;
129#[cfg(test)]
130mod inference_coverage_tests;
131#[cfg(test)]
132mod training_data_coverage_tests;
133#[cfg(test)]
134mod struct_lifetime_coverage_tests;
135#[cfg(test)]
136mod deep_coverage_tests2;