aboutsummaryrefslogtreecommitdiffstats
path: root/mumd/src/state.rs
diff options
context:
space:
mode:
authorEskil Queseth <eskilq@kth.se>2021-05-19 02:27:27 +0200
committerEskil Queseth <eskilq@kth.se>2021-05-19 02:27:27 +0200
commit5d05d292ddb7f8b28b71abd46930028b6e66dfde (patch)
treeabd10727e7c7e5ec004ec14ced7189d2c1c0687c /mumd/src/state.rs
parent0b2efad3e9aa569c27d339a5eca17c96155b4f9d (diff)
downloadmum-5d05d292ddb7f8b28b71abd46930028b6e66dfde.tar.gz
add support for sending multiple responses
Diffstat (limited to 'mumd/src/state.rs')
-rw-r--r--mumd/src/state.rs8
1 files changed, 6 insertions, 2 deletions
diff --git a/mumd/src/state.rs b/mumd/src/state.rs
index 91c6ee7..423ce76 100644
--- a/mumd/src/state.rs
+++ b/mumd/src/state.rs
@@ -23,7 +23,7 @@ use tokio::sync::{mpsc, watch};
macro_rules! at {
($event:expr, $generator:expr) => {
- ExecutionContext::TcpEvent($event, Box::new($generator))
+ ExecutionContext::TcpEventCallback($event, Box::new($generator))
};
}
@@ -35,10 +35,14 @@ macro_rules! now {
//TODO give me a better name
pub enum ExecutionContext {
- TcpEvent(
+ TcpEventCallback(
TcpEvent,
Box<dyn FnOnce(TcpEventData) -> mumlib::error::Result<Option<CommandResponse>>>,
),
+ TcpEventSubscriber(
+ TcpEvent,
+ Box<dyn FnMut(TcpEventData, &mut mpsc::UnboundedSender<mumlib::error::Result<Option<CommandResponse>>>) -> bool>,
+ ),
Now(Box<dyn FnOnce() -> mumlib::error::Result<Option<CommandResponse>>>),
Ping(
Box<dyn FnOnce() -> mumlib::error::Result<SocketAddr>>,