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§
Sourcefn 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>>
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>>
Add state source into state machine.
tag- theTagof the source.capacity- the capacity of broadcast channel.pass_checks- check conditions to continue to recieve state change events.
Sourcefn 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>>
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>>
Add state reader into state machine.
tag- theTagof the reader.reader- the reader to be added into state machine.
Sourcefn del_handle<T>(&self, tag: &T) -> Result<bool, GetHandleError<Self::K>>
fn del_handle<T>(&self, tag: &T) -> Result<bool, GetHandleError<Self::K>>
Delete state handle (source or reader) from state machine.
tag- theTagof the handle to be deleted.
Sourcefn has_handle<T>(&self, tag: &T) -> bool
fn has_handle<T>(&self, tag: &T) -> bool
If there is a handle (source or reader) in state machine for a tag.
tag- theTagto find handle associated with it.
Sourcefn reader<T>(&self, tag: T) -> Result<Reader<T::Value>, GetHandleError<Self::K>>
fn reader<T>(&self, tag: T) -> Result<Reader<T::Value>, GetHandleError<Self::K>>
Get a new reader from state machine, which will receive state change events individually.
tag- theTagof the handle which you want to get a reader from it.
Sourcefn value<T>(&self, tag: T) -> Result<T::Value, GetHandleError<Self::K>>
fn value<T>(&self, tag: T) -> Result<T::Value, GetHandleError<Self::K>>
Get current state value of a tag in state machine.
tag- theTagof the handle which you want to get state value from it.
Sourcefn state<T>(&self, tag: T) -> Result<State<T::Value>, GetHandleError<Self::K>>
fn state<T>(&self, tag: T) -> Result<State<T::Value>, GetHandleError<Self::K>>
Get current state of a tag in state machine.
tag- theTagof the handle which you want to get state from it.
Sourcefn touch<'life0, 'async_trait, T>(
&'life0 self,
tag: T,
) -> Pin<Box<dyn Future<Output = Result<(), StateChangeError<T, Self::K>>> + Send + 'async_trait>>
fn touch<'life0, 'async_trait, T>( &'life0 self, tag: T, ) -> Pin<Box<dyn Future<Output = Result<(), StateChangeError<T, Self::K>>> + Send + 'async_trait>>
Trigger a state change event, but doesn’t change the state value.
tag- theTagof the handle which you want to touch.
Sourcefn wait_touch<'life0, 'async_trait, T>(
&'life0 self,
tag: T,
) -> Pin<Box<dyn Future<Output = Result<(), StateChangeError<T, Self::K>>> + Send + '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>>
Trigger a state change event, but doesn’t change the state value, and wait for all readers finishing responding actions.
tag- theTagof the handle which you want to touch.
Sourcefn 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>>
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>>
Alter a state in state machine.
tag- theTagof the handle which you want to alter.
Sourcefn 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>>
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>>
Alter a state in state machine, and wait for all readers finishing responding actions.
tag- theTagof the handle which you want to alter.
Sourcefn 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>>
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>>
Amend a state in state machine, with a closure which take the current state value as parameter and return new state value.
tag- theTagof the handle which you want to amend.
Sourcefn 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>>
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>>
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- theTagof the handle which you want to amend.
Sourcefn debug_state(&self) -> Vec<String>
fn debug_state(&self) -> Vec<String>
Get debug state of state machine, ordered by tag.
Sourceasync fn watch_1<T0, F>(
&self,
tag_0: T0,
func: F,
) -> Result<(), GetHandleError<Self::K>>
async fn watch_1<T0, F>( &self, tag_0: T0, func: F, ) -> Result<(), GetHandleError<Self::K>>
Watch multiple state readers simultaneously, state events from these readers arrived in queue.
Sourceasync 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_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.
Sourceasync 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_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.
Sourceasync 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_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.
Sourceasync 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_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.
Sourceasync 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_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.
Sourceasync 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_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.
Sourceasync 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_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.
Sourceasync 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_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.
Sourceasync 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 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.
Sourceasync 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_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.
Sourceasync 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_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.
Sourceasync 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_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.
Sourceasync 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_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.
Sourceasync 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_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.
Sourceasync 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_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.
Sourceasync 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_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.
Sourceasync 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_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.
Sourceasync 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 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.
Sourceasync fn split_reader_2<T, F, S0, S1>(
&self,
tag: T,
func: F,
) -> Result<(Reader<S0>, Reader<S1>), GetHandleError<Self::K>>
async fn split_reader_2<T, F, S0, S1>( &self, tag: T, func: F, ) -> Result<(Reader<S0>, Reader<S1>), GetHandleError<Self::K>>
Split a state reader into multiple state readers.
Sourceasync fn split_reader_3<T, F, S0, S1, S2>(
&self,
tag: T,
func: F,
) -> Result<(Reader<S0>, Reader<S1>, Reader<S2>), GetHandleError<Self::K>>
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>>
Split a state reader into multiple state readers.
Sourceasync 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>>
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>>
Split a state reader into multiple state readers.
Sourceasync 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_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.
Sourceasync 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_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.
Sourceasync 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_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.
Sourceasync 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_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.
Sourceasync 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_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.
Sourceasync 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,
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".