Skip to main content

rust_elm/runtime/
mod.rs

1//! Tokio-backed live runtime: bus, store, effect interpreter, subscriptions.
2//!
3//! Store flavors:
4//! - [`store::Store`] — [`Mutex`](parking_lot::Mutex) (default [`Runtime`])
5//! - [`rw_store::RwStore`] — [`RwLock`](parking_lot::RwLock) ([`RwRuntime`])
6//! - [`tea_store::TeaStore`] — channel-pushed model snapshots ([`TeaRuntime`], true TEA)
7//! - [`swap_store::SwapStore`] — lock-free snapshot reads (`arc-swap` feature, [`SwapRuntime`])
8
9mod config;
10pub mod error;
11pub(crate) mod dispatch;
12mod engine;
13mod lifecycle;
14mod rw_engine;
15mod tea_engine;
16#[cfg(feature = "arc-swap")]
17mod swap_engine;
18pub mod binding;
19pub(crate) mod interpreter;
20pub(crate) mod state_access;
21pub mod store;
22pub mod rw_store;
23pub mod tea_store;
24#[cfg(feature = "arc-swap")]
25pub mod swap_store;
26pub mod subscription;
27
28pub use config::RuntimeConfig;
29pub use error::RuntimeError;
30pub use engine::Runtime;
31pub use rw_engine::RwRuntime;
32pub use tea_engine::TeaRuntime;
33#[cfg(feature = "arc-swap")]
34pub use swap_engine::SwapRuntime;