diff options
Diffstat (limited to 'mumd/src/state.rs')
| -rw-r--r-- | mumd/src/state.rs | 8 |
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>>, |
