rr_mux/
muxed.rs

1/// Muxed is a container for either a request or response message
2#[derive(Debug, Clone, PartialEq)]
3pub enum Muxed<Req, Resp> {
4    Request(Req),
5    Response(Resp),
6}
7
8impl<Req, Resp> Muxed<Req, Resp> {
9    /// Fetch a request if muxed contains a request type
10    pub fn req(self) -> Option<Req> {
11        match self {
12            Muxed::Request(req) => Some(req),
13            _ => None,
14        }
15    }
16
17    /// Fetch a response if muxed contains a response type
18    pub fn resp(self) -> Option<Resp> {
19        match self {
20            Muxed::Response(resp) => Some(resp),
21            _ => None,
22        }
23    }
24}