#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VirtualPortId(pub(crate) u64);
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct PortId(pub(crate) u64);
impl PortId {
pub fn to_bits(self) -> u64 {
self.0
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct Source {
pub(crate) id: PortId,
pub(crate) name: String,
pub(crate) is_virtual: bool,
}
impl Source {
pub fn id(&self) -> PortId {
self.id
}
pub fn name(&self) -> &str {
&self.name
}
pub fn is_virtual(&self) -> bool {
self.is_virtual
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub enum SourceChange {
Added(Source),
Removed(Source),
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct Destination {
pub(crate) id: PortId,
pub(crate) name: String,
pub(crate) is_virtual: bool,
}
impl Destination {
pub fn id(&self) -> PortId {
self.id
}
pub fn name(&self) -> &str {
&self.name
}
pub fn is_virtual(&self) -> bool {
self.is_virtual
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub enum DestinationChange {
Added(Destination),
Removed(Destination),
}