#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
pub struct PciBusNumber {
segment: u16,
bus: u8,
}
impl PciBusNumber {
pub fn new(bus: u8) -> Self {
Self::with_segment(0, bus)
}
pub fn with_segment(segment: u16, bus: u8) -> Self {
Self { segment, bus }
}
pub fn bus(&self) -> u8 {
self.bus
}
pub fn segment(&self) -> u16 {
self.segment
}
}
impl std::fmt::Debug for PciBusNumber {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{:04X}:{:02X}", self.segment, self.bus,)
}
}
impl std::fmt::Display for PciBusNumber {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{:04X}:{:02X}", self.segment, self.bus,)
}
}