vortex-core 0.1.0

Core types and deterministic scheduler for Vortex simulation engine
Documentation
//! `vortex-core` — Core types and deterministic scheduler for the Vortex simulation engine.
//!
//! This crate provides the foundational building blocks:
//! - [`NodeId`] — unique identifier for a simulated node
//! - [`SimEvent`] / [`SimEventKind`] — schedulable events in the simulation
//! - [`SimScheduler`] — single-threaded deterministic event loop
//! - [`DetRng`] — seeded deterministic random number generator
//! - [`VortexSeed`] / [`SeedTree`] — 128-bit hierarchical seed derivation
//! - [`SimContext`] / [`SimEventLog`] — simulation context and structured event log
//! - [`FaultConfig`] — declarative fault injection DSL
//! - Trait definitions for the I/O boundary ([`VortexNetwork`], [`VortexStorage`], [`VortexClock`])

pub mod context;
pub mod fault_config;
pub mod plugin;
mod rng;
mod scheduler;
pub mod seed;
mod traits;

pub use context::{
    DivergenceKind, LogDivergence, SeqNo, SimContext, SimEventLog, SimLogEntry, Subsystem,
};
pub use fault_config::{
    AllocFaultConfig, ClockFaultConfig, ConfigError, FaultConfig, FsError, FsFaultConfig,
    FsFaultRule, FsOp, NetworkFault, NetworkFaultConfig, NetworkFaultRule, ProcessFault,
    ProcessFaultConfig, ProcessFaultRule, SchedulingStrategy, ThreadSchedulingConfig,
};
pub use rng::DetRng;
pub use scheduler::{SimEvent, SimEventKind, SimScheduler};
pub use seed::{SeedTree, VortexSeed};
pub use traits::*;

/// Unique identifier for a simulated node.
pub type NodeId = u64;