diff --git a/src/lib.rs b/src/lib.rs index aca3615..122ef76 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -54,7 +54,8 @@ where ) } - fn dispatch(&self, msg: Msg) { + /// Directly handle a state message without requiring a binding. + pub fn dispatch(&self, msg: Msg) { self.signal.set(self.dispatcher.map(msg, self.signal)) } diff --git a/src/tests/mod.rs b/src/tests/mod.rs index 8c85cc5..c3ac169 100644 --- a/src/tests/mod.rs +++ b/src/tests/mod.rs @@ -24,6 +24,19 @@ pub struct FakeState { value_two: i32, } +pub enum MultiMsg { + Foo(Msg), + Bar(Msg), +} + +pub struct MultiState<'ctx, D> +where + D: MessageMapper, +{ + foo: &'ctx Handler<'ctx, D, FakeState, Msg>, + bar: &'ctx Handler<'ctx, D, FakeState, Msg>, +} + pub struct StateMachine(); impl MessageMapper for StateMachine {