From 66d1307f1bfd04480257e0b2e9f956e765af8620 Mon Sep 17 00:00:00 2001 From: Jeremy Wall Date: Mon, 26 Dec 2022 17:24:14 -0500 Subject: [PATCH] Make dispatch a public method --- src/lib.rs | 3 ++- src/tests/mod.rs | 13 +++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) 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 {