entrust_agent/server/
event.rs1use std::io;
2use std::sync::mpsc;
3
4#[derive(Clone, Copy, Debug, PartialEq)]
5pub enum ServerEvent {
6 Started,
7 RequestHandled,
8 Stopped,
9}
10
11pub(super) trait EventSender {
12 fn send_server_event(&self, event: ServerEvent) -> io::Result<()>;
13}
14
15impl EventSender for Option<mpsc::Sender<ServerEvent>> {
16 fn send_server_event(&self, event: ServerEvent) -> io::Result<()> {
17 self.as_ref()
18 .map(|s| s.send(event))
19 .transpose()
20 .map(|_| ())
21 .map_err(io::Error::other)
22 }
23}