Expand description
§Reducer Module
This module provides traits and utilities for creating reducers - pure functions that take a current state and an action, and return a new state. This is a core concept in Redux-style state management.
§Example
use zed::{Reducer, create_reducer};
#[derive(Clone, Debug, PartialEq)]
struct CounterState {
value: i32,
}
#[derive(Debug)]
enum CounterAction {
Increment,
Decrement,
Set(i32),
}
// Create a reducer using a closure
let counter_reducer = create_reducer(|state: &CounterState, action: &CounterAction| {
match action {
CounterAction::Increment => CounterState { value: state.value + 1 },
CounterAction::Decrement => CounterState { value: state.value - 1 },
CounterAction::Set(val) => CounterState { value: *val },
}
});
let state = CounterState { value: 0 };
let new_state = counter_reducer.reduce(&state, &CounterAction::Increment);
assert_eq!(new_state.value, 1);
Structs§
- Closure
Reducer - A reducer implementation that wraps a closure function.
Traits§
- Reducer
- A trait for implementing reducers that transform state based on actions.
Functions§
- create_
reducer - Creates a new reducer from a closure function.