use std::{
fmt::{Debug, Display},
net::SocketAddr,
};
use crate::pipeline::QueueName;
pub enum ForeignInfo {
GenericTcp(SocketAddr),
Http(SocketAddr),
SocketCAN(String),
InMemoryQueue(QueueName),
}
impl Display for ForeignInfo {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
let detail = match self {
ForeignInfo::GenericTcp(addr) => format!("TCP connection to {:?}", addr),
ForeignInfo::Http(addr) => format!("HTTP connection to {:?}", addr),
ForeignInfo::SocketCAN(interface) => format!("Socket CAN interface {}", interface),
ForeignInfo::InMemoryQueue(queue_name) => format!("In-memory queue {}", queue_name),
};
write!(f, "[foreign info.] {}", detail)
}
}
impl Debug for ForeignInfo {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
Display::fmt(self, f)
}
}