Skip to main content

Module deterministic

Module deterministic 

Source
Expand description

DeterministicBrick: Pure functional brick execution (PROBAR-SPEC-009-P11)

Provides deterministic execution with:

  • Pure functional design: (State, Input) → (State, Output)
  • Persistent data structures for O(1) snapshots
  • Time-travel debugging
  • Jidoka guards for invariant checking

§Design Philosophy

DeterministicBrick applies WOS (WebAssembly Operating System) patterns to ensure reproducible brick execution.

§Example

use probar::brick::deterministic::{DeterministicBrick, BrickHistory};

impl DeterministicBrick for MelSpectrogramBrick {
    type State = ComputeState;
    type Input = AudioChunk;
    type Output = MelFrames;

    fn execute_pure(
        state: Self::State,
        input: Self::Input,
    ) -> Result<(Self::State, Self::Output), BrickError> {
        let mel = compute_mel(&input, &state.filterbank)?;
        let new_state = state.with_frame_count(state.frame_count + 1);
        Ok((new_state, mel))
    }
}

Structs§

BrickHistory
History for time-travel debugging
BrickState
Brick state snapshot with structural sharing
DeterministicClock
Deterministic clock for reproducibility
DeterministicRng
Deterministic random number generator (for reproducibility)
ExecutionTrace
Execution trace entry for time-travel debugging
GuardViolation
Guard violation error
GuardedBrick
Wrapper that adds invariant checking to a brick
InvariantGuard
Invariant guard for Jidoka pattern

Enums§

GuardSeverity
Severity level for invariant violations
StateValue
Value types for state metadata

Traits§

DeterministicBrick
Trait for bricks with deterministic, pure functional execution