diff --git a/src/event.rs b/src/event.rs index 85fbb64..0efe008 100644 --- a/src/event.rs +++ b/src/event.rs @@ -3,6 +3,7 @@ use eyre::Result; pub enum InternalEvent { Test, + Shutdown, } pub enum EventKind { diff --git a/src/state.rs b/src/state.rs index b5ecf4f..136c865 100644 --- a/src/state.rs +++ b/src/state.rs @@ -5,7 +5,7 @@ use std::time::Instant; use std::sync::Arc; use tokio::sync::oneshot; use tokio::sync::mpsc; -use crate::event::{EventKind,Event,EventResponse}; +use crate::event::{EventKind,Event,EventResponse,InternalEvent}; use crate::endpoint::Endpoint; use crate::irc_endpoint::IrcEndpoint; @@ -76,8 +76,15 @@ impl RircdState { let event = event.unwrap(); match event.kind { EventKind::Internal(ev) => { - //TODO impl - event.result_sender.send(EventResponse::Success); + //TODO impl TODO don't unwrap + match ev { + InternalEvent::Shutdown => { + //TODO shutdown all endpoints + break; + }, + _ => {}, + } + assert!( event.result_sender.send(EventResponse::Success).is_ok()); }, EventKind::Message => {}, _ => {},