1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
use super::*; /// Represent a USB endpoint #[derive(Clone, Copy, Debug, Default)] pub struct UsbEndpoint { /// bEndpointAddress pub address: u8, /// bmAttributes pub attributes: u8, /// wMaxPacketSize pub max_packet_size: u16, /// bInterval pub interval: u8, } impl UsbEndpoint { pub(crate) fn direction(&self) -> Direction { if self.address & 0x80 != 0 { Direction::In } else { Direction::Out } } pub fn is_ep0(&self) -> bool { self.address & 0x7F == 0 } }