entrust_agent/server/
event.rs

1use 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}