Skip to main content

UseStateMachine

Trait UseStateMachine 

Source
pub trait UseStateMachine: HasStateMachine {
Show 42 methods // Required methods fn add_source<'life0, 'async_trait, T>( &'life0 self, tag: T, capacity: usize, pass_checks: Option<Vec<Box<dyn AsPassCheck + Send + Sync>>>, ) -> Pin<Box<dyn Future<Output = Result<(), AddHandleError<Self::K>>> + Send + 'async_trait>> where T: 'static + Clone + Debug + Display + Into<Self::K> + KvAssoc + Send + Sync + 'async_trait, T::Value: 'static + AsState + Send + Sync, Self: 'async_trait, 'life0: 'async_trait; fn add_reader<'life0, 'async_trait, T>( &'life0 self, tag: T, reader: Reader<T::Value>, ) -> Pin<Box<dyn Future<Output = Result<(), AddHandleError<Self::K>>> + Send + 'async_trait>> where T: 'static + Clone + Debug + Display + Into<Self::K> + KvAssoc + Send + Sync + 'async_trait, T::Value: 'static + AsState + Send + Sync, Self: 'async_trait, 'life0: 'async_trait; fn del_handle<T>(&self, tag: &T) -> Result<bool, GetHandleError<Self::K>> where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc, T::Value: AsState + Send + Sync; fn has_handle<T>(&self, tag: &T) -> bool where T: Clone + Into<Self::K>; fn reader<T>( &self, tag: T, ) -> Result<Reader<T::Value>, GetHandleError<Self::K>> where T: Clone + Debug + Into<Self::K> + KvAssoc, T::Value: AsState + Send + Sync; fn value<T>(&self, tag: T) -> Result<T::Value, GetHandleError<Self::K>> where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T::Value: 'static + AsState + Send + Sync; fn state<T>( &self, tag: T, ) -> Result<State<T::Value>, GetHandleError<Self::K>> where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T::Value: 'static + AsState + Send + Sync; fn touch<'life0, 'async_trait, T>( &'life0 self, tag: T, ) -> Pin<Box<dyn Future<Output = Result<(), StateChangeError<T, Self::K>>> + Send + 'async_trait>> where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync + 'async_trait, T::Value: 'static + AsState + Send + Sync, Self: 'async_trait, 'life0: 'async_trait; fn wait_touch<'life0, 'async_trait, T>( &'life0 self, tag: T, ) -> Pin<Box<dyn Future<Output = Result<(), StateChangeError<T, Self::K>>> + Send + 'async_trait>> where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync + 'async_trait, T::Value: 'static + AsState + Send + Sync, Self: 'async_trait, 'life0: 'async_trait; fn alter<'life0, 'async_trait, T>( &'life0 self, tag: T, s: T::Value, ) -> Pin<Box<dyn Future<Output = Result<(), StateChangeError<T, Self::K>>> + Send + 'async_trait>> where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync + 'async_trait, T::Value: 'static + AsState + Send + Sync, Self: 'async_trait, 'life0: 'async_trait; fn wait_alter<'life0, 'async_trait, T>( &'life0 self, tag: T, s: T::Value, ) -> Pin<Box<dyn Future<Output = Result<(), StateChangeError<T, Self::K>>> + Send + 'async_trait>> where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync + 'async_trait, T::Value: 'static + AsState + Send + Sync, Self: 'async_trait, 'life0: 'async_trait; fn amend<'life0, 'async_trait, T>( &'life0 self, tag: T, f: impl 'async_trait + FnOnce(T::Value) -> T::Value + Send, ) -> Pin<Box<dyn Future<Output = Result<(), StateChangeError<T, Self::K>>> + Send + 'async_trait>> where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync + 'async_trait, T::Value: 'static + AsState + Send + Sync, Self: 'async_trait, 'life0: 'async_trait; fn wait_amend<'life0, 'async_trait, T>( &'life0 self, tag: T, f: impl 'async_trait + FnOnce(T::Value) -> T::Value + Send, ) -> Pin<Box<dyn Future<Output = Result<(), StateChangeError<T, Self::K>>> + Send + 'async_trait>> where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync + 'async_trait, T::Value: 'static + AsState + Send + Sync, Self: 'async_trait, 'life0: 'async_trait; fn debug_state(&self) -> Vec<String>; async fn watch_1<T0, F>( &self, tag_0: T0, func: F, ) -> Result<(), GetHandleError<Self::K>> where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, F: 'static + Fn(StateChange<T0>, Self::K) -> Pin<Box<dyn Future<Output = Result<()>> + Send>> + Send; async fn watch_2<T0, T1, F>( &self, tag_0: T0, tag_1: T1, func: F, ) -> Result<(), GetHandleError<Self::K>> where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, F: 'static + Fn(StateChange<T0>, StateChange<T1>, Self::K) -> Pin<Box<dyn Future<Output = Result<()>> + Send>> + Send; async fn watch_3<T0, T1, T2, F>( &self, tag_0: T0, tag_1: T1, tag_2: T2, func: F, ) -> Result<(), GetHandleError<Self::K>> where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, T2: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T2::Value: 'static + AsState + Send + Sync, F: 'static + Fn(StateChange<T0>, StateChange<T1>, StateChange<T2>, Self::K) -> Pin<Box<dyn Future<Output = Result<()>> + Send>> + Send; async fn watch_4<T0, T1, T2, T3, F>( &self, tag_0: T0, tag_1: T1, tag_2: T2, tag_3: T3, func: F, ) -> Result<(), GetHandleError<Self::K>> where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, T2: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T2::Value: 'static + AsState + Send + Sync, T3: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T3::Value: 'static + AsState + Send + Sync, F: 'static + Fn(StateChange<T0>, StateChange<T1>, StateChange<T2>, StateChange<T3>, Self::K) -> Pin<Box<dyn Future<Output = Result<()>> + Send>> + Send; async fn watch_5<T0, T1, T2, T3, T4, F>( &self, tag_0: T0, tag_1: T1, tag_2: T2, tag_3: T3, tag_4: T4, func: F, ) -> Result<(), GetHandleError<Self::K>> where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, T2: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T2::Value: 'static + AsState + Send + Sync, T3: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T3::Value: 'static + AsState + Send + Sync, T4: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T4::Value: 'static + AsState + Send + Sync, F: 'static + Fn(StateChange<T0>, StateChange<T1>, StateChange<T2>, StateChange<T3>, StateChange<T4>, Self::K) -> Pin<Box<dyn Future<Output = Result<()>> + Send>> + Send; async fn watch_6<T0, T1, T2, T3, T4, T5, F>( &self, tag_0: T0, tag_1: T1, tag_2: T2, tag_3: T3, tag_4: T4, tag_5: T5, func: F, ) -> Result<(), GetHandleError<Self::K>> where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, T2: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T2::Value: 'static + AsState + Send + Sync, T3: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T3::Value: 'static + AsState + Send + Sync, T4: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T4::Value: 'static + AsState + Send + Sync, T5: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T5::Value: 'static + AsState + Send + Sync, F: 'static + Fn(StateChange<T0>, StateChange<T1>, StateChange<T2>, StateChange<T3>, StateChange<T4>, StateChange<T5>, Self::K) -> Pin<Box<dyn Future<Output = Result<()>> + Send>> + Send; async fn watch_7<T0, T1, T2, T3, T4, T5, T6, F>( &self, tag_0: T0, tag_1: T1, tag_2: T2, tag_3: T3, tag_4: T4, tag_5: T5, tag_6: T6, func: F, ) -> Result<(), GetHandleError<Self::K>> where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, T2: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T2::Value: 'static + AsState + Send + Sync, T3: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T3::Value: 'static + AsState + Send + Sync, T4: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T4::Value: 'static + AsState + Send + Sync, T5: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T5::Value: 'static + AsState + Send + Sync, T6: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T6::Value: 'static + AsState + Send + Sync, F: 'static + Fn(StateChange<T0>, StateChange<T1>, StateChange<T2>, StateChange<T3>, StateChange<T4>, StateChange<T5>, StateChange<T6>, Self::K) -> Pin<Box<dyn Future<Output = Result<()>> + Send>> + Send; async fn watch_8<T0, T1, T2, T3, T4, T5, T6, T7, F>( &self, tag_0: T0, tag_1: T1, tag_2: T2, tag_3: T3, tag_4: T4, tag_5: T5, tag_6: T6, tag_7: T7, func: F, ) -> Result<(), GetHandleError<Self::K>> where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, T2: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T2::Value: 'static + AsState + Send + Sync, T3: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T3::Value: 'static + AsState + Send + Sync, T4: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T4::Value: 'static + AsState + Send + Sync, T5: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T5::Value: 'static + AsState + Send + Sync, T6: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T6::Value: 'static + AsState + Send + Sync, T7: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T7::Value: 'static + AsState + Send + Sync, F: 'static + Fn(StateChange<T0>, StateChange<T1>, StateChange<T2>, StateChange<T3>, StateChange<T4>, StateChange<T5>, StateChange<T6>, StateChange<T7>, Self::K) -> Pin<Box<dyn Future<Output = Result<()>> + Send>> + Send; async fn watch_9<T0, T1, T2, T3, T4, T5, T6, T7, T8, F>( &self, tag_0: T0, tag_1: T1, tag_2: T2, tag_3: T3, tag_4: T4, tag_5: T5, tag_6: T6, tag_7: T7, tag_8: T8, func: F, ) -> Result<(), GetHandleError<Self::K>> where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, T2: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T2::Value: 'static + AsState + Send + Sync, T3: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T3::Value: 'static + AsState + Send + Sync, T4: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T4::Value: 'static + AsState + Send + Sync, T5: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T5::Value: 'static + AsState + Send + Sync, T6: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T6::Value: 'static + AsState + Send + Sync, T7: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T7::Value: 'static + AsState + Send + Sync, T8: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T8::Value: 'static + AsState + Send + Sync, F: 'static + Fn(StateChange<T0>, StateChange<T1>, StateChange<T2>, StateChange<T3>, StateChange<T4>, StateChange<T5>, StateChange<T6>, StateChange<T7>, StateChange<T8>, Self::K) -> Pin<Box<dyn Future<Output = Result<()>> + Send>> + Send; async fn watch_10<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, F>( &self, tag_0: T0, tag_1: T1, tag_2: T2, tag_3: T3, tag_4: T4, tag_5: T5, tag_6: T6, tag_7: T7, tag_8: T8, tag_9: T9, func: F, ) -> Result<(), GetHandleError<Self::K>> where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, T2: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T2::Value: 'static + AsState + Send + Sync, T3: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T3::Value: 'static + AsState + Send + Sync, T4: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T4::Value: 'static + AsState + Send + Sync, T5: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T5::Value: 'static + AsState + Send + Sync, T6: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T6::Value: 'static + AsState + Send + Sync, T7: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T7::Value: 'static + AsState + Send + Sync, T8: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T8::Value: 'static + AsState + Send + Sync, T9: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T9::Value: 'static + AsState + Send + Sync, F: 'static + Fn(StateChange<T0>, StateChange<T1>, StateChange<T2>, StateChange<T3>, StateChange<T4>, StateChange<T5>, StateChange<T6>, StateChange<T7>, StateChange<T8>, StateChange<T9>, Self::K) -> Pin<Box<dyn Future<Output = Result<()>> + Send>> + Send; async fn merge_reader_2<T0, T1, S, F>( &self, tag_0: T0, tag_1: T1, func: F, ) -> Result<Reader<S>, GetHandleError<Self::K>> where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, S: 'static + AsState + Send, F: 'static + Fn(State<T0::Value>, State<T1::Value>) -> State<S> + Send; async fn merge_reader_3<T0, T1, T2, S, F>( &self, tag_0: T0, tag_1: T1, tag_2: T2, func: F, ) -> Result<Reader<S>, GetHandleError<Self::K>> where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, T2: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T2::Value: 'static + AsState + Send + Sync, S: 'static + AsState + Send, F: 'static + Fn(State<T0::Value>, State<T1::Value>, State<T2::Value>) -> State<S> + Send; async fn merge_reader_4<T0, T1, T2, T3, S, F>( &self, tag_0: T0, tag_1: T1, tag_2: T2, tag_3: T3, func: F, ) -> Result<Reader<S>, GetHandleError<Self::K>> where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, T2: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T2::Value: 'static + AsState + Send + Sync, T3: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T3::Value: 'static + AsState + Send + Sync, S: 'static + AsState + Send, F: 'static + Fn(State<T0::Value>, State<T1::Value>, State<T2::Value>, State<T3::Value>) -> State<S> + Send; async fn merge_reader_5<T0, T1, T2, T3, T4, S, F>( &self, tag_0: T0, tag_1: T1, tag_2: T2, tag_3: T3, tag_4: T4, func: F, ) -> Result<Reader<S>, GetHandleError<Self::K>> where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, T2: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T2::Value: 'static + AsState + Send + Sync, T3: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T3::Value: 'static + AsState + Send + Sync, T4: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T4::Value: 'static + AsState + Send + Sync, S: 'static + AsState + Send, F: 'static + Fn(State<T0::Value>, State<T1::Value>, State<T2::Value>, State<T3::Value>, State<T4::Value>) -> State<S> + Send; async fn merge_reader_6<T0, T1, T2, T3, T4, T5, S, F>( &self, tag_0: T0, tag_1: T1, tag_2: T2, tag_3: T3, tag_4: T4, tag_5: T5, func: F, ) -> Result<Reader<S>, GetHandleError<Self::K>> where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, T2: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T2::Value: 'static + AsState + Send + Sync, T3: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T3::Value: 'static + AsState + Send + Sync, T4: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T4::Value: 'static + AsState + Send + Sync, T5: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T5::Value: 'static + AsState + Send + Sync, S: 'static + AsState + Send, F: 'static + Fn(State<T0::Value>, State<T1::Value>, State<T2::Value>, State<T3::Value>, State<T4::Value>, State<T5::Value>) -> State<S> + Send; async fn merge_reader_7<T0, T1, T2, T3, T4, T5, T6, S, F>( &self, tag_0: T0, tag_1: T1, tag_2: T2, tag_3: T3, tag_4: T4, tag_5: T5, tag_6: T6, func: F, ) -> Result<Reader<S>, GetHandleError<Self::K>> where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, T2: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T2::Value: 'static + AsState + Send + Sync, T3: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T3::Value: 'static + AsState + Send + Sync, T4: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T4::Value: 'static + AsState + Send + Sync, T5: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T5::Value: 'static + AsState + Send + Sync, T6: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T6::Value: 'static + AsState + Send + Sync, S: 'static + AsState + Send, F: 'static + Fn(State<T0::Value>, State<T1::Value>, State<T2::Value>, State<T3::Value>, State<T4::Value>, State<T5::Value>, State<T6::Value>) -> State<S> + Send; async fn merge_reader_8<T0, T1, T2, T3, T4, T5, T6, T7, S, F>( &self, tag_0: T0, tag_1: T1, tag_2: T2, tag_3: T3, tag_4: T4, tag_5: T5, tag_6: T6, tag_7: T7, func: F, ) -> Result<Reader<S>, GetHandleError<Self::K>> where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, T2: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T2::Value: 'static + AsState + Send + Sync, T3: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T3::Value: 'static + AsState + Send + Sync, T4: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T4::Value: 'static + AsState + Send + Sync, T5: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T5::Value: 'static + AsState + Send + Sync, T6: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T6::Value: 'static + AsState + Send + Sync, T7: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T7::Value: 'static + AsState + Send + Sync, S: 'static + AsState + Send, F: 'static + Fn(State<T0::Value>, State<T1::Value>, State<T2::Value>, State<T3::Value>, State<T4::Value>, State<T5::Value>, State<T6::Value>, State<T7::Value>) -> State<S> + Send; async fn merge_reader_9<T0, T1, T2, T3, T4, T5, T6, T7, T8, S, F>( &self, tag_0: T0, tag_1: T1, tag_2: T2, tag_3: T3, tag_4: T4, tag_5: T5, tag_6: T6, tag_7: T7, tag_8: T8, func: F, ) -> Result<Reader<S>, GetHandleError<Self::K>> where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, T2: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T2::Value: 'static + AsState + Send + Sync, T3: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T3::Value: 'static + AsState + Send + Sync, T4: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T4::Value: 'static + AsState + Send + Sync, T5: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T5::Value: 'static + AsState + Send + Sync, T6: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T6::Value: 'static + AsState + Send + Sync, T7: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T7::Value: 'static + AsState + Send + Sync, T8: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T8::Value: 'static + AsState + Send + Sync, S: 'static + AsState + Send, F: 'static + Fn(State<T0::Value>, State<T1::Value>, State<T2::Value>, State<T3::Value>, State<T4::Value>, State<T5::Value>, State<T6::Value>, State<T7::Value>, State<T8::Value>) -> State<S> + Send; async fn merge_reader_10<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, S, F>( &self, tag_0: T0, tag_1: T1, tag_2: T2, tag_3: T3, tag_4: T4, tag_5: T5, tag_6: T6, tag_7: T7, tag_8: T8, tag_9: T9, func: F, ) -> Result<Reader<S>, GetHandleError<Self::K>> where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, T2: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T2::Value: 'static + AsState + Send + Sync, T3: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T3::Value: 'static + AsState + Send + Sync, T4: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T4::Value: 'static + AsState + Send + Sync, T5: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T5::Value: 'static + AsState + Send + Sync, T6: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T6::Value: 'static + AsState + Send + Sync, T7: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T7::Value: 'static + AsState + Send + Sync, T8: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T8::Value: 'static + AsState + Send + Sync, T9: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T9::Value: 'static + AsState + Send + Sync, S: 'static + AsState + Send, F: 'static + Fn(State<T0::Value>, State<T1::Value>, State<T2::Value>, State<T3::Value>, State<T4::Value>, State<T5::Value>, State<T6::Value>, State<T7::Value>, State<T8::Value>, State<T9::Value>) -> State<S> + Send; async fn split_reader_2<T, F, S0, S1>( &self, tag: T, func: F, ) -> Result<(Reader<S0>, Reader<S1>), GetHandleError<Self::K>> where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send, T::Value: 'static + AsState + Send + Sync, F: 'static + Fn(T::Value) -> (S0, S1) + Send, S0: 'static + AsState + Send, S1: 'static + AsState + Send; async fn split_reader_3<T, F, S0, S1, S2>( &self, tag: T, func: F, ) -> Result<(Reader<S0>, Reader<S1>, Reader<S2>), GetHandleError<Self::K>> where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send, T::Value: 'static + AsState + Send + Sync, F: 'static + Fn(T::Value) -> (S0, S1, S2) + Send, S0: 'static + AsState + Send, S1: 'static + AsState + Send, S2: 'static + AsState + Send; async fn split_reader_4<T, F, S0, S1, S2, S3>( &self, tag: T, func: F, ) -> Result<(Reader<S0>, Reader<S1>, Reader<S2>, Reader<S3>), GetHandleError<Self::K>> where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send, T::Value: 'static + AsState + Send + Sync, F: 'static + Fn(T::Value) -> (S0, S1, S2, S3) + Send, S0: 'static + AsState + Send, S1: 'static + AsState + Send, S2: 'static + AsState + Send, S3: 'static + AsState + Send; async fn split_reader_5<T, F, S0, S1, S2, S3, S4>( &self, tag: T, func: F, ) -> Result<(Reader<S0>, Reader<S1>, Reader<S2>, Reader<S3>, Reader<S4>), GetHandleError<Self::K>> where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send, T::Value: 'static + AsState + Send + Sync, F: 'static + Fn(T::Value) -> (S0, S1, S2, S3, S4) + Send, S0: 'static + AsState + Send, S1: 'static + AsState + Send, S2: 'static + AsState + Send, S3: 'static + AsState + Send, S4: 'static + AsState + Send; async fn split_reader_6<T, F, S0, S1, S2, S3, S4, S5>( &self, tag: T, func: F, ) -> Result<(Reader<S0>, Reader<S1>, Reader<S2>, Reader<S3>, Reader<S4>, Reader<S5>), GetHandleError<Self::K>> where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send, T::Value: 'static + AsState + Send + Sync, F: 'static + Fn(T::Value) -> (S0, S1, S2, S3, S4, S5) + Send, S0: 'static + AsState + Send, S1: 'static + AsState + Send, S2: 'static + AsState + Send, S3: 'static + AsState + Send, S4: 'static + AsState + Send, S5: 'static + AsState + Send; async fn split_reader_7<T, F, S0, S1, S2, S3, S4, S5, S6>( &self, tag: T, func: F, ) -> Result<(Reader<S0>, Reader<S1>, Reader<S2>, Reader<S3>, Reader<S4>, Reader<S5>, Reader<S6>), GetHandleError<Self::K>> where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send, T::Value: 'static + AsState + Send + Sync, F: 'static + Fn(T::Value) -> (S0, S1, S2, S3, S4, S5, S6) + Send, S0: 'static + AsState + Send, S1: 'static + AsState + Send, S2: 'static + AsState + Send, S3: 'static + AsState + Send, S4: 'static + AsState + Send, S5: 'static + AsState + Send, S6: 'static + AsState + Send; async fn split_reader_8<T, F, S0, S1, S2, S3, S4, S5, S6, S7>( &self, tag: T, func: F, ) -> Result<(Reader<S0>, Reader<S1>, Reader<S2>, Reader<S3>, Reader<S4>, Reader<S5>, Reader<S6>, Reader<S7>), GetHandleError<Self::K>> where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send, T::Value: 'static + AsState + Send + Sync, F: 'static + Fn(T::Value) -> (S0, S1, S2, S3, S4, S5, S6, S7) + Send, S0: 'static + AsState + Send, S1: 'static + AsState + Send, S2: 'static + AsState + Send, S3: 'static + AsState + Send, S4: 'static + AsState + Send, S5: 'static + AsState + Send, S6: 'static + AsState + Send, S7: 'static + AsState + Send; async fn split_reader_9<T, F, S0, S1, S2, S3, S4, S5, S6, S7, S8>( &self, tag: T, func: F, ) -> Result<(Reader<S0>, Reader<S1>, Reader<S2>, Reader<S3>, Reader<S4>, Reader<S5>, Reader<S6>, Reader<S7>, Reader<S8>), GetHandleError<Self::K>> where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send, T::Value: 'static + AsState + Send + Sync, F: 'static + Fn(T::Value) -> (S0, S1, S2, S3, S4, S5, S6, S7, S8) + Send, S0: 'static + AsState + Send, S1: 'static + AsState + Send, S2: 'static + AsState + Send, S3: 'static + AsState + Send, S4: 'static + AsState + Send, S5: 'static + AsState + Send, S6: 'static + AsState + Send, S7: 'static + AsState + Send, S8: 'static + AsState + Send; async fn split_reader_10<T, F, S0, S1, S2, S3, S4, S5, S6, S7, S8, S9>( &self, tag: T, func: F, ) -> Result<(Reader<S0>, Reader<S1>, Reader<S2>, Reader<S3>, Reader<S4>, Reader<S5>, Reader<S6>, Reader<S7>, Reader<S8>, Reader<S9>), GetHandleError<Self::K>> where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send, T::Value: 'static + AsState + Send + Sync, F: 'static + Fn(T::Value) -> (S0, S1, S2, S3, S4, S5, S6, S7, S8, S9) + Send, S0: 'static + AsState + Send, S1: 'static + AsState + Send, S2: 'static + AsState + Send, S3: 'static + AsState + Send, S4: 'static + AsState + Send, S5: 'static + AsState + Send, S6: 'static + AsState + Send, S7: 'static + AsState + Send, S8: 'static + AsState + Send, S9: 'static + AsState + Send;
}

Required Methods§

Source

fn add_source<'life0, 'async_trait, T>( &'life0 self, tag: T, capacity: usize, pass_checks: Option<Vec<Box<dyn AsPassCheck + Send + Sync>>>, ) -> Pin<Box<dyn Future<Output = Result<(), AddHandleError<Self::K>>> + Send + 'async_trait>>
where T: 'static + Clone + Debug + Display + Into<Self::K> + KvAssoc + Send + Sync + 'async_trait, T::Value: 'static + AsState + Send + Sync, Self: 'async_trait, 'life0: 'async_trait,

Add state source into state machine.

  • tag - the Tag of the source.
  • capacity - the capacity of broadcast channel.
  • pass_checks - check conditions to continue to recieve state change events.
Source

fn add_reader<'life0, 'async_trait, T>( &'life0 self, tag: T, reader: Reader<T::Value>, ) -> Pin<Box<dyn Future<Output = Result<(), AddHandleError<Self::K>>> + Send + 'async_trait>>
where T: 'static + Clone + Debug + Display + Into<Self::K> + KvAssoc + Send + Sync + 'async_trait, T::Value: 'static + AsState + Send + Sync, Self: 'async_trait, 'life0: 'async_trait,

Add state reader into state machine.

  • tag - the Tag of the reader.
  • reader - the reader to be added into state machine.
Source

fn del_handle<T>(&self, tag: &T) -> Result<bool, GetHandleError<Self::K>>
where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc, T::Value: AsState + Send + Sync,

Delete state handle (source or reader) from state machine.

  • tag - the Tag of the handle to be deleted.
Source

fn has_handle<T>(&self, tag: &T) -> bool
where T: Clone + Into<Self::K>,

If there is a handle (source or reader) in state machine for a tag.

  • tag - the Tag to find handle associated with it.
Source

fn reader<T>(&self, tag: T) -> Result<Reader<T::Value>, GetHandleError<Self::K>>
where T: Clone + Debug + Into<Self::K> + KvAssoc, T::Value: AsState + Send + Sync,

Get a new reader from state machine, which will receive state change events individually.

  • tag - the Tag of the handle which you want to get a reader from it.
Source

fn value<T>(&self, tag: T) -> Result<T::Value, GetHandleError<Self::K>>
where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T::Value: 'static + AsState + Send + Sync,

Get current state value of a tag in state machine.

  • tag - the Tag of the handle which you want to get state value from it.
Source

fn state<T>(&self, tag: T) -> Result<State<T::Value>, GetHandleError<Self::K>>
where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T::Value: 'static + AsState + Send + Sync,

Get current state of a tag in state machine.

  • tag - the Tag of the handle which you want to get state from it.
Source

fn touch<'life0, 'async_trait, T>( &'life0 self, tag: T, ) -> Pin<Box<dyn Future<Output = Result<(), StateChangeError<T, Self::K>>> + Send + 'async_trait>>
where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync + 'async_trait, T::Value: 'static + AsState + Send + Sync, Self: 'async_trait, 'life0: 'async_trait,

Trigger a state change event, but doesn’t change the state value.

  • tag - the Tag of the handle which you want to touch.
Source

fn wait_touch<'life0, 'async_trait, T>( &'life0 self, tag: T, ) -> Pin<Box<dyn Future<Output = Result<(), StateChangeError<T, Self::K>>> + Send + 'async_trait>>
where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync + 'async_trait, T::Value: 'static + AsState + Send + Sync, Self: 'async_trait, 'life0: 'async_trait,

Trigger a state change event, but doesn’t change the state value, and wait for all readers finishing responding actions.

  • tag - the Tag of the handle which you want to touch.
Source

fn alter<'life0, 'async_trait, T>( &'life0 self, tag: T, s: T::Value, ) -> Pin<Box<dyn Future<Output = Result<(), StateChangeError<T, Self::K>>> + Send + 'async_trait>>
where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync + 'async_trait, T::Value: 'static + AsState + Send + Sync, Self: 'async_trait, 'life0: 'async_trait,

Alter a state in state machine.

  • tag - the Tag of the handle which you want to alter.
Source

fn wait_alter<'life0, 'async_trait, T>( &'life0 self, tag: T, s: T::Value, ) -> Pin<Box<dyn Future<Output = Result<(), StateChangeError<T, Self::K>>> + Send + 'async_trait>>
where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync + 'async_trait, T::Value: 'static + AsState + Send + Sync, Self: 'async_trait, 'life0: 'async_trait,

Alter a state in state machine, and wait for all readers finishing responding actions.

  • tag - the Tag of the handle which you want to alter.
Source

fn amend<'life0, 'async_trait, T>( &'life0 self, tag: T, f: impl 'async_trait + FnOnce(T::Value) -> T::Value + Send, ) -> Pin<Box<dyn Future<Output = Result<(), StateChangeError<T, Self::K>>> + Send + 'async_trait>>
where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync + 'async_trait, T::Value: 'static + AsState + Send + Sync, Self: 'async_trait, 'life0: 'async_trait,

Amend a state in state machine, with a closure which take the current state value as parameter and return new state value.

  • tag - the Tag of the handle which you want to amend.
Source

fn wait_amend<'life0, 'async_trait, T>( &'life0 self, tag: T, f: impl 'async_trait + FnOnce(T::Value) -> T::Value + Send, ) -> Pin<Box<dyn Future<Output = Result<(), StateChangeError<T, Self::K>>> + Send + 'async_trait>>
where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync + 'async_trait, T::Value: 'static + AsState + Send + Sync, Self: 'async_trait, 'life0: 'async_trait,

Amend a state in state machine, with a closure which take the current state value as parameter and return new state value, and wait for all readers finishing responding actions.

  • tag - the Tag of the handle which you want to amend.
Source

fn debug_state(&self) -> Vec<String>

Get debug state of state machine, ordered by tag.

Source

async fn watch_1<T0, F>( &self, tag_0: T0, func: F, ) -> Result<(), GetHandleError<Self::K>>
where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, F: 'static + Fn(StateChange<T0>, Self::K) -> Pin<Box<dyn Future<Output = Result<()>> + Send>> + Send,

Watch multiple state readers simultaneously, state events from these readers arrived in queue.

Source

async fn watch_2<T0, T1, F>( &self, tag_0: T0, tag_1: T1, func: F, ) -> Result<(), GetHandleError<Self::K>>
where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, F: 'static + Fn(StateChange<T0>, StateChange<T1>, Self::K) -> Pin<Box<dyn Future<Output = Result<()>> + Send>> + Send,

Watch multiple state readers simultaneously, state events from these readers arrived in queue.

Source

async fn watch_3<T0, T1, T2, F>( &self, tag_0: T0, tag_1: T1, tag_2: T2, func: F, ) -> Result<(), GetHandleError<Self::K>>
where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, T2: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T2::Value: 'static + AsState + Send + Sync, F: 'static + Fn(StateChange<T0>, StateChange<T1>, StateChange<T2>, Self::K) -> Pin<Box<dyn Future<Output = Result<()>> + Send>> + Send,

Watch multiple state readers simultaneously, state events from these readers arrived in queue.

Source

async fn watch_4<T0, T1, T2, T3, F>( &self, tag_0: T0, tag_1: T1, tag_2: T2, tag_3: T3, func: F, ) -> Result<(), GetHandleError<Self::K>>
where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, T2: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T2::Value: 'static + AsState + Send + Sync, T3: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T3::Value: 'static + AsState + Send + Sync, F: 'static + Fn(StateChange<T0>, StateChange<T1>, StateChange<T2>, StateChange<T3>, Self::K) -> Pin<Box<dyn Future<Output = Result<()>> + Send>> + Send,

Watch multiple state readers simultaneously, state events from these readers arrived in queue.

Source

async fn watch_5<T0, T1, T2, T3, T4, F>( &self, tag_0: T0, tag_1: T1, tag_2: T2, tag_3: T3, tag_4: T4, func: F, ) -> Result<(), GetHandleError<Self::K>>
where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, T2: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T2::Value: 'static + AsState + Send + Sync, T3: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T3::Value: 'static + AsState + Send + Sync, T4: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T4::Value: 'static + AsState + Send + Sync, F: 'static + Fn(StateChange<T0>, StateChange<T1>, StateChange<T2>, StateChange<T3>, StateChange<T4>, Self::K) -> Pin<Box<dyn Future<Output = Result<()>> + Send>> + Send,

Watch multiple state readers simultaneously, state events from these readers arrived in queue.

Source

async fn watch_6<T0, T1, T2, T3, T4, T5, F>( &self, tag_0: T0, tag_1: T1, tag_2: T2, tag_3: T3, tag_4: T4, tag_5: T5, func: F, ) -> Result<(), GetHandleError<Self::K>>
where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, T2: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T2::Value: 'static + AsState + Send + Sync, T3: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T3::Value: 'static + AsState + Send + Sync, T4: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T4::Value: 'static + AsState + Send + Sync, T5: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T5::Value: 'static + AsState + Send + Sync, F: 'static + Fn(StateChange<T0>, StateChange<T1>, StateChange<T2>, StateChange<T3>, StateChange<T4>, StateChange<T5>, Self::K) -> Pin<Box<dyn Future<Output = Result<()>> + Send>> + Send,

Watch multiple state readers simultaneously, state events from these readers arrived in queue.

Source

async fn watch_7<T0, T1, T2, T3, T4, T5, T6, F>( &self, tag_0: T0, tag_1: T1, tag_2: T2, tag_3: T3, tag_4: T4, tag_5: T5, tag_6: T6, func: F, ) -> Result<(), GetHandleError<Self::K>>
where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, T2: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T2::Value: 'static + AsState + Send + Sync, T3: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T3::Value: 'static + AsState + Send + Sync, T4: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T4::Value: 'static + AsState + Send + Sync, T5: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T5::Value: 'static + AsState + Send + Sync, T6: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T6::Value: 'static + AsState + Send + Sync, F: 'static + Fn(StateChange<T0>, StateChange<T1>, StateChange<T2>, StateChange<T3>, StateChange<T4>, StateChange<T5>, StateChange<T6>, Self::K) -> Pin<Box<dyn Future<Output = Result<()>> + Send>> + Send,

Watch multiple state readers simultaneously, state events from these readers arrived in queue.

Source

async fn watch_8<T0, T1, T2, T3, T4, T5, T6, T7, F>( &self, tag_0: T0, tag_1: T1, tag_2: T2, tag_3: T3, tag_4: T4, tag_5: T5, tag_6: T6, tag_7: T7, func: F, ) -> Result<(), GetHandleError<Self::K>>
where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, T2: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T2::Value: 'static + AsState + Send + Sync, T3: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T3::Value: 'static + AsState + Send + Sync, T4: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T4::Value: 'static + AsState + Send + Sync, T5: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T5::Value: 'static + AsState + Send + Sync, T6: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T6::Value: 'static + AsState + Send + Sync, T7: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T7::Value: 'static + AsState + Send + Sync, F: 'static + Fn(StateChange<T0>, StateChange<T1>, StateChange<T2>, StateChange<T3>, StateChange<T4>, StateChange<T5>, StateChange<T6>, StateChange<T7>, Self::K) -> Pin<Box<dyn Future<Output = Result<()>> + Send>> + Send,

Watch multiple state readers simultaneously, state events from these readers arrived in queue.

Source

async fn watch_9<T0, T1, T2, T3, T4, T5, T6, T7, T8, F>( &self, tag_0: T0, tag_1: T1, tag_2: T2, tag_3: T3, tag_4: T4, tag_5: T5, tag_6: T6, tag_7: T7, tag_8: T8, func: F, ) -> Result<(), GetHandleError<Self::K>>
where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, T2: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T2::Value: 'static + AsState + Send + Sync, T3: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T3::Value: 'static + AsState + Send + Sync, T4: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T4::Value: 'static + AsState + Send + Sync, T5: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T5::Value: 'static + AsState + Send + Sync, T6: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T6::Value: 'static + AsState + Send + Sync, T7: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T7::Value: 'static + AsState + Send + Sync, T8: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T8::Value: 'static + AsState + Send + Sync, F: 'static + Fn(StateChange<T0>, StateChange<T1>, StateChange<T2>, StateChange<T3>, StateChange<T4>, StateChange<T5>, StateChange<T6>, StateChange<T7>, StateChange<T8>, Self::K) -> Pin<Box<dyn Future<Output = Result<()>> + Send>> + Send,

Watch multiple state readers simultaneously, state events from these readers arrived in queue.

Source

async fn watch_10<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, F>( &self, tag_0: T0, tag_1: T1, tag_2: T2, tag_3: T3, tag_4: T4, tag_5: T5, tag_6: T6, tag_7: T7, tag_8: T8, tag_9: T9, func: F, ) -> Result<(), GetHandleError<Self::K>>
where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, T2: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T2::Value: 'static + AsState + Send + Sync, T3: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T3::Value: 'static + AsState + Send + Sync, T4: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T4::Value: 'static + AsState + Send + Sync, T5: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T5::Value: 'static + AsState + Send + Sync, T6: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T6::Value: 'static + AsState + Send + Sync, T7: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T7::Value: 'static + AsState + Send + Sync, T8: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T8::Value: 'static + AsState + Send + Sync, T9: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T9::Value: 'static + AsState + Send + Sync, F: 'static + Fn(StateChange<T0>, StateChange<T1>, StateChange<T2>, StateChange<T3>, StateChange<T4>, StateChange<T5>, StateChange<T6>, StateChange<T7>, StateChange<T8>, StateChange<T9>, Self::K) -> Pin<Box<dyn Future<Output = Result<()>> + Send>> + Send,

Watch multiple state readers simultaneously, state events from these readers arrived in queue.

Source

async fn merge_reader_2<T0, T1, S, F>( &self, tag_0: T0, tag_1: T1, func: F, ) -> Result<Reader<S>, GetHandleError<Self::K>>
where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, S: 'static + AsState + Send, F: 'static + Fn(State<T0::Value>, State<T1::Value>) -> State<S> + Send,

Merge multiple state readers into one.

Source

async fn merge_reader_3<T0, T1, T2, S, F>( &self, tag_0: T0, tag_1: T1, tag_2: T2, func: F, ) -> Result<Reader<S>, GetHandleError<Self::K>>
where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, T2: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T2::Value: 'static + AsState + Send + Sync, S: 'static + AsState + Send, F: 'static + Fn(State<T0::Value>, State<T1::Value>, State<T2::Value>) -> State<S> + Send,

Merge multiple state readers into one.

Source

async fn merge_reader_4<T0, T1, T2, T3, S, F>( &self, tag_0: T0, tag_1: T1, tag_2: T2, tag_3: T3, func: F, ) -> Result<Reader<S>, GetHandleError<Self::K>>
where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, T2: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T2::Value: 'static + AsState + Send + Sync, T3: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T3::Value: 'static + AsState + Send + Sync, S: 'static + AsState + Send, F: 'static + Fn(State<T0::Value>, State<T1::Value>, State<T2::Value>, State<T3::Value>) -> State<S> + Send,

Merge multiple state readers into one.

Source

async fn merge_reader_5<T0, T1, T2, T3, T4, S, F>( &self, tag_0: T0, tag_1: T1, tag_2: T2, tag_3: T3, tag_4: T4, func: F, ) -> Result<Reader<S>, GetHandleError<Self::K>>
where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, T2: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T2::Value: 'static + AsState + Send + Sync, T3: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T3::Value: 'static + AsState + Send + Sync, T4: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T4::Value: 'static + AsState + Send + Sync, S: 'static + AsState + Send, F: 'static + Fn(State<T0::Value>, State<T1::Value>, State<T2::Value>, State<T3::Value>, State<T4::Value>) -> State<S> + Send,

Merge multiple state readers into one.

Source

async fn merge_reader_6<T0, T1, T2, T3, T4, T5, S, F>( &self, tag_0: T0, tag_1: T1, tag_2: T2, tag_3: T3, tag_4: T4, tag_5: T5, func: F, ) -> Result<Reader<S>, GetHandleError<Self::K>>
where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, T2: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T2::Value: 'static + AsState + Send + Sync, T3: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T3::Value: 'static + AsState + Send + Sync, T4: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T4::Value: 'static + AsState + Send + Sync, T5: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T5::Value: 'static + AsState + Send + Sync, S: 'static + AsState + Send, F: 'static + Fn(State<T0::Value>, State<T1::Value>, State<T2::Value>, State<T3::Value>, State<T4::Value>, State<T5::Value>) -> State<S> + Send,

Merge multiple state readers into one.

Source

async fn merge_reader_7<T0, T1, T2, T3, T4, T5, T6, S, F>( &self, tag_0: T0, tag_1: T1, tag_2: T2, tag_3: T3, tag_4: T4, tag_5: T5, tag_6: T6, func: F, ) -> Result<Reader<S>, GetHandleError<Self::K>>
where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, T2: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T2::Value: 'static + AsState + Send + Sync, T3: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T3::Value: 'static + AsState + Send + Sync, T4: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T4::Value: 'static + AsState + Send + Sync, T5: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T5::Value: 'static + AsState + Send + Sync, T6: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T6::Value: 'static + AsState + Send + Sync, S: 'static + AsState + Send, F: 'static + Fn(State<T0::Value>, State<T1::Value>, State<T2::Value>, State<T3::Value>, State<T4::Value>, State<T5::Value>, State<T6::Value>) -> State<S> + Send,

Merge multiple state readers into one.

Source

async fn merge_reader_8<T0, T1, T2, T3, T4, T5, T6, T7, S, F>( &self, tag_0: T0, tag_1: T1, tag_2: T2, tag_3: T3, tag_4: T4, tag_5: T5, tag_6: T6, tag_7: T7, func: F, ) -> Result<Reader<S>, GetHandleError<Self::K>>
where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, T2: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T2::Value: 'static + AsState + Send + Sync, T3: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T3::Value: 'static + AsState + Send + Sync, T4: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T4::Value: 'static + AsState + Send + Sync, T5: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T5::Value: 'static + AsState + Send + Sync, T6: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T6::Value: 'static + AsState + Send + Sync, T7: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T7::Value: 'static + AsState + Send + Sync, S: 'static + AsState + Send, F: 'static + Fn(State<T0::Value>, State<T1::Value>, State<T2::Value>, State<T3::Value>, State<T4::Value>, State<T5::Value>, State<T6::Value>, State<T7::Value>) -> State<S> + Send,

Merge multiple state readers into one.

Source

async fn merge_reader_9<T0, T1, T2, T3, T4, T5, T6, T7, T8, S, F>( &self, tag_0: T0, tag_1: T1, tag_2: T2, tag_3: T3, tag_4: T4, tag_5: T5, tag_6: T6, tag_7: T7, tag_8: T8, func: F, ) -> Result<Reader<S>, GetHandleError<Self::K>>
where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, T2: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T2::Value: 'static + AsState + Send + Sync, T3: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T3::Value: 'static + AsState + Send + Sync, T4: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T4::Value: 'static + AsState + Send + Sync, T5: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T5::Value: 'static + AsState + Send + Sync, T6: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T6::Value: 'static + AsState + Send + Sync, T7: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T7::Value: 'static + AsState + Send + Sync, T8: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T8::Value: 'static + AsState + Send + Sync, S: 'static + AsState + Send, F: 'static + Fn(State<T0::Value>, State<T1::Value>, State<T2::Value>, State<T3::Value>, State<T4::Value>, State<T5::Value>, State<T6::Value>, State<T7::Value>, State<T8::Value>) -> State<S> + Send,

Merge multiple state readers into one.

Source

async fn merge_reader_10<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, S, F>( &self, tag_0: T0, tag_1: T1, tag_2: T2, tag_3: T3, tag_4: T4, tag_5: T5, tag_6: T6, tag_7: T7, tag_8: T8, tag_9: T9, func: F, ) -> Result<Reader<S>, GetHandleError<Self::K>>
where T0: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T0::Value: 'static + AsState + Send + Sync, T1: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T1::Value: 'static + AsState + Send + Sync, T2: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T2::Value: 'static + AsState + Send + Sync, T3: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T3::Value: 'static + AsState + Send + Sync, T4: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T4::Value: 'static + AsState + Send + Sync, T5: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T5::Value: 'static + AsState + Send + Sync, T6: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T6::Value: 'static + AsState + Send + Sync, T7: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T7::Value: 'static + AsState + Send + Sync, T8: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T8::Value: 'static + AsState + Send + Sync, T9: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send + Sync, T9::Value: 'static + AsState + Send + Sync, S: 'static + AsState + Send, F: 'static + Fn(State<T0::Value>, State<T1::Value>, State<T2::Value>, State<T3::Value>, State<T4::Value>, State<T5::Value>, State<T6::Value>, State<T7::Value>, State<T8::Value>, State<T9::Value>) -> State<S> + Send,

Merge multiple state readers into one.

Source

async fn split_reader_2<T, F, S0, S1>( &self, tag: T, func: F, ) -> Result<(Reader<S0>, Reader<S1>), GetHandleError<Self::K>>
where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send, T::Value: 'static + AsState + Send + Sync, F: 'static + Fn(T::Value) -> (S0, S1) + Send, S0: 'static + AsState + Send, S1: 'static + AsState + Send,

Split a state reader into multiple state readers.

Source

async fn split_reader_3<T, F, S0, S1, S2>( &self, tag: T, func: F, ) -> Result<(Reader<S0>, Reader<S1>, Reader<S2>), GetHandleError<Self::K>>
where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send, T::Value: 'static + AsState + Send + Sync, F: 'static + Fn(T::Value) -> (S0, S1, S2) + Send, S0: 'static + AsState + Send, S1: 'static + AsState + Send, S2: 'static + AsState + Send,

Split a state reader into multiple state readers.

Source

async fn split_reader_4<T, F, S0, S1, S2, S3>( &self, tag: T, func: F, ) -> Result<(Reader<S0>, Reader<S1>, Reader<S2>, Reader<S3>), GetHandleError<Self::K>>
where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send, T::Value: 'static + AsState + Send + Sync, F: 'static + Fn(T::Value) -> (S0, S1, S2, S3) + Send, S0: 'static + AsState + Send, S1: 'static + AsState + Send, S2: 'static + AsState + Send, S3: 'static + AsState + Send,

Split a state reader into multiple state readers.

Source

async fn split_reader_5<T, F, S0, S1, S2, S3, S4>( &self, tag: T, func: F, ) -> Result<(Reader<S0>, Reader<S1>, Reader<S2>, Reader<S3>, Reader<S4>), GetHandleError<Self::K>>
where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send, T::Value: 'static + AsState + Send + Sync, F: 'static + Fn(T::Value) -> (S0, S1, S2, S3, S4) + Send, S0: 'static + AsState + Send, S1: 'static + AsState + Send, S2: 'static + AsState + Send, S3: 'static + AsState + Send, S4: 'static + AsState + Send,

Split a state reader into multiple state readers.

Source

async fn split_reader_6<T, F, S0, S1, S2, S3, S4, S5>( &self, tag: T, func: F, ) -> Result<(Reader<S0>, Reader<S1>, Reader<S2>, Reader<S3>, Reader<S4>, Reader<S5>), GetHandleError<Self::K>>
where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send, T::Value: 'static + AsState + Send + Sync, F: 'static + Fn(T::Value) -> (S0, S1, S2, S3, S4, S5) + Send, S0: 'static + AsState + Send, S1: 'static + AsState + Send, S2: 'static + AsState + Send, S3: 'static + AsState + Send, S4: 'static + AsState + Send, S5: 'static + AsState + Send,

Split a state reader into multiple state readers.

Source

async fn split_reader_7<T, F, S0, S1, S2, S3, S4, S5, S6>( &self, tag: T, func: F, ) -> Result<(Reader<S0>, Reader<S1>, Reader<S2>, Reader<S3>, Reader<S4>, Reader<S5>, Reader<S6>), GetHandleError<Self::K>>
where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send, T::Value: 'static + AsState + Send + Sync, F: 'static + Fn(T::Value) -> (S0, S1, S2, S3, S4, S5, S6) + Send, S0: 'static + AsState + Send, S1: 'static + AsState + Send, S2: 'static + AsState + Send, S3: 'static + AsState + Send, S4: 'static + AsState + Send, S5: 'static + AsState + Send, S6: 'static + AsState + Send,

Split a state reader into multiple state readers.

Source

async fn split_reader_8<T, F, S0, S1, S2, S3, S4, S5, S6, S7>( &self, tag: T, func: F, ) -> Result<(Reader<S0>, Reader<S1>, Reader<S2>, Reader<S3>, Reader<S4>, Reader<S5>, Reader<S6>, Reader<S7>), GetHandleError<Self::K>>
where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send, T::Value: 'static + AsState + Send + Sync, F: 'static + Fn(T::Value) -> (S0, S1, S2, S3, S4, S5, S6, S7) + Send, S0: 'static + AsState + Send, S1: 'static + AsState + Send, S2: 'static + AsState + Send, S3: 'static + AsState + Send, S4: 'static + AsState + Send, S5: 'static + AsState + Send, S6: 'static + AsState + Send, S7: 'static + AsState + Send,

Split a state reader into multiple state readers.

Source

async fn split_reader_9<T, F, S0, S1, S2, S3, S4, S5, S6, S7, S8>( &self, tag: T, func: F, ) -> Result<(Reader<S0>, Reader<S1>, Reader<S2>, Reader<S3>, Reader<S4>, Reader<S5>, Reader<S6>, Reader<S7>, Reader<S8>), GetHandleError<Self::K>>
where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send, T::Value: 'static + AsState + Send + Sync, F: 'static + Fn(T::Value) -> (S0, S1, S2, S3, S4, S5, S6, S7, S8) + Send, S0: 'static + AsState + Send, S1: 'static + AsState + Send, S2: 'static + AsState + Send, S3: 'static + AsState + Send, S4: 'static + AsState + Send, S5: 'static + AsState + Send, S6: 'static + AsState + Send, S7: 'static + AsState + Send, S8: 'static + AsState + Send,

Split a state reader into multiple state readers.

Source

async fn split_reader_10<T, F, S0, S1, S2, S3, S4, S5, S6, S7, S8, S9>( &self, tag: T, func: F, ) -> Result<(Reader<S0>, Reader<S1>, Reader<S2>, Reader<S3>, Reader<S4>, Reader<S5>, Reader<S6>, Reader<S7>, Reader<S8>, Reader<S9>), GetHandleError<Self::K>>
where T: 'static + Clone + Debug + Into<Self::K> + KvAssoc + Send, T::Value: 'static + AsState + Send + Sync, F: 'static + Fn(T::Value) -> (S0, S1, S2, S3, S4, S5, S6, S7, S8, S9) + Send, S0: 'static + AsState + Send, S1: 'static + AsState + Send, S2: 'static + AsState + Send, S3: 'static + AsState + Send, S4: 'static + AsState + Send, S5: 'static + AsState + Send, S6: 'static + AsState + Send, S7: 'static + AsState + Send, S8: 'static + AsState + Send, S9: 'static + AsState + Send,

Split a state reader into multiple state readers.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<M> UseStateMachine for M
where M: 'static + HasStateMachine + Send + Sync,