Expand description
§Zed - State Management for Rust
Redux-inspired state management library with additional features.
§Features
- Redux-like Store with centralized state management
- Timeline for undo/redo functionality
- State Mesh for distributed state synchronization
- Capsules for encapsulated state domains
- Reactive System for event-driven updates
§Quick Start
use serde::{Deserialize, Serialize};
use zed::*;
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct CounterState {
pub value: i32,
pub is_loading: bool,
}
create_slice! {
enum_name: CounterActions,
fn_base: counter,
state: CounterState,
initial_state: CounterState { value: 0, is_loading: false },
actions: {
Increment,
Decrement,
},
reducer: |state: &mut CounterState, action: &CounterActions| {
match action {
CounterActions::Increment => state.value += 1,
CounterActions::Decrement => state.value -= 1,
}
}
}
let store = counter_store();
store.subscribe(|state: &CounterState| {
println!("State: {:?}", state);
});
store.dispatch(CounterActions::Increment);Re-exports§
pub use capsule::Cache;pub use capsule::Capsule;pub use configure_store::configure_store;pub use reactive::ReactiveSystem;pub use reducer::ClosureReducer;pub use reducer::Reducer;pub use reducer::create_reducer;pub use simple_cache::SimpleCache;pub use state_mesh::StateNode;pub use store::Store;pub use store::SubscriptionId;pub use timeline::StateManager;
Modules§
- capsule
- configure_
store - Configure Store Module
- create_
slice - reactive
- reducer
- Reducer Module
- simple_
cache - Simple Cache Module
- state_
mesh - State Mesh Module
- store
- Store Module
- timeline
- Timeline Module