entrust_agent/server/
event.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
use std::io;
use std::sync::mpsc;

#[derive(Clone, Copy, Debug, PartialEq)]
pub enum ServerEvent {
    Started,
    RequestHandled,
    Stopped,
}

pub(super) trait EventSender {
    fn send_server_event(&self, event: ServerEvent) -> io::Result<()>;
}

impl EventSender for Option<mpsc::Sender<ServerEvent>> {
    fn send_server_event(&self, event: ServerEvent) -> io::Result<()> {
        self.as_ref()
            .map(|s| s.send(event))
            .transpose()
            .map(|_| ())
            .map_err(io::Error::other)
    }
}