pub trait EddSimulation:
GoverningEquation
+ FalsifiableSimulation
+ Reproducible
+ YamlConfigurable {
// Required methods
fn emc(&self) -> &EquationModelCard;
fn verify_against_emc(&self) -> VerificationResult;
// Provided methods
fn simulation_name(&self) -> &str { ... }
fn simulation_version(&self) -> &str { ... }
}Expand description
Core EDD trait bundle.
Every simulation in simular MUST implement this trait, which combines:
GoverningEquation: Mathematical foundationFalsifiableSimulation: Active falsification searchReproducible: Deterministic seedingYamlConfigurable: Declarative configuration
§EDD Compliance
Implementing this trait ensures the simulation complies with all four pillars of EDD:
- Prove It: Via
GoverningEquation(EMC reference) - Fail It: Via
FalsifiableSimulation(falsification criteria) - Seed It: Via
Reproducible(deterministic RNG) - Falsify It: Via
verify_against_emc()(active testing)
§Example
ⓘ
pub struct HarmonicOscillator {
omega: f64,
emc: EquationModelCard,
seed: u64,
}
impl EddSimulation for HarmonicOscillator {
fn emc(&self) -> &EquationModelCard {
&self.emc
}
fn verify_against_emc(&self) -> VerificationResult {
// Run EMC verification tests
}
}Required Methods§
Sourcefn emc(&self) -> &EquationModelCard
fn emc(&self) -> &EquationModelCard
Get the associated Equation Model Card.
Sourcefn verify_against_emc(&self) -> VerificationResult
fn verify_against_emc(&self) -> VerificationResult
Verify implementation against EMC test cases.
Runs all verification tests defined in the EMC and returns a detailed result showing which tests passed or failed.
Provided Methods§
Sourcefn simulation_name(&self) -> &str
fn simulation_name(&self) -> &str
Get simulation name from EMC.
Sourcefn simulation_version(&self) -> &str
fn simulation_version(&self) -> &str
Get simulation version from EMC.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.