trueno_db/experiment/mod.rs
1//! Experiment Tracking Schema (Phase 5: ENT-EPIC-001)
2//!
3//! This module provides the data structures for experiment tracking,
4//! designed to integrate with entrenar's `ExperimentStorage`.
5//!
6//! ## Schema Overview
7//!
8//! ```text
9//! ExperimentRecord (1) ──< RunRecord (N)
10//! │
11//! ├──< MetricRecord (N) [time-series]
12//! └──< ArtifactRecord (N) [CAS]
13//! ```
14//!
15//! ## Usage
16//!
17//! ```rust
18//! use trueno_db::experiment::{ExperimentRecord, RunRecord, MetricRecord, RunStatus};
19//!
20//! // Create an experiment
21//! let experiment = ExperimentRecord::new("exp-001", "My Experiment");
22//!
23//! // Start a run
24//! let mut run = RunRecord::new("run-001", experiment.experiment_id());
25//! run.start();
26//!
27//! // Log metrics
28//! let metric = MetricRecord::new(run.run_id(), "loss", 0, 0.5);
29//!
30//! // Complete the run
31//! run.complete(RunStatus::Success);
32//! ```
33
34mod artifact_record;
35mod experiment_record;
36mod metric_record;
37mod run_record;
38mod store;
39
40pub use artifact_record::ArtifactRecord;
41pub use experiment_record::{ExperimentRecord, ExperimentRecordBuilder};
42pub use metric_record::{MetricRecord, MetricRecordBuilder};
43pub use run_record::{RunRecord, RunRecordBuilder, RunStatus};
44pub use store::ExperimentStore;