use std::net::SocketAddr;
use super::{FromMessageRequest, MessageRequest, Payload};
#[derive(Debug, Clone, Copy)]
pub struct ConnectionInfo {
peer_addr: Option<SocketAddr>,
}
impl ConnectionInfo {
#[must_use]
pub fn peer_addr(&self) -> Option<SocketAddr> { self.peer_addr }
}
impl FromMessageRequest for ConnectionInfo {
type Error = std::convert::Infallible;
fn from_message_request(
req: &MessageRequest,
_payload: &mut Payload<'_>,
) -> Result<Self, Self::Error> {
Ok(Self {
peer_addr: req.peer_addr,
})
}
}