pub struct Store<S> { /* private fields */ }
Expand description
A store is where your “state” data lives. It is in essence a big RefCell. There are also supporting mechanisms to enable subscriptions and mutation notifications.
Implementations§
Source§impl<S: Trackable> Store<S>
impl<S: Trackable> Store<S>
Sourcepub fn build_path(&self) -> StoreRoot<'_, S>
pub fn build_path(&self) -> StoreRoot<'_, S>
Use this method to create paths to different pieces of your state.
#[derive(Trackable)]
#[track(deep)]
struct MyStruct<T> {
field_1: T,
field_2: u64
}
let store = Store::new(MyStruct {
field_1: MyStruct {
field_1: String::new(),
field_2: 123
},
field_2: 456
});
// path to the root `MyStruct` itself
let path = store.build_path();
// path to `field_1` in the root `MyStruct`
let path = store.build_path().field_1();
// path to `field_2` in the root `MyStruct`
let path = store.build_path().field_2();
// path root -> field_1 -> field_1
let path = store.build_path().field_1().field_1();
// path root -> field_1 -> field_2
let path = store.build_path().field_1().field_2();
Auto Trait Implementations§
impl<S> !Freeze for Store<S>
impl<S> !RefUnwindSafe for Store<S>
impl<S> Send for Store<S>where
S: Send,
impl<S> !Sync for Store<S>
impl<S> Unpin for Store<S>where
S: Unpin,
impl<S> UnwindSafe for Store<S>where
S: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more