Crate zed

Source
Expand description

§Zed - Advanced State Management for Rust

Zed is a comprehensive state management library that provides Redux-like patterns with advanced features for modern Rust applications.

§Features

  • Redux-like Store: Centralized, predictable state management
  • Timeline: Time-reversible state with history and branching
  • State Mesh: Distributed state nodes with conflict resolution
  • Capsules: Encapsulated state domains with caching
  • Reactive System: Cascade-triggered reactive 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 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

Macros§

create_slice
paste