pub mod endpoint_address {
pub const ADDR_MASK: u8 = 0x0F;
pub const DIR_MASK: u8 = 0x80;
pub const OUT: u8 = 0x00;
pub const IN: u8 = 0x80;
}
pub mod endpoint_attributes {
pub const TRANSFER_TYPE_MASK: u8 = 0b11;
pub mod transfer_type {
pub const CONTROL: u8 = 0b00;
pub const ISOCHRONOUS: u8 = 0b01;
pub const BULK: u8 = 0b10;
pub const INTERRUPT: u8 = 0b11;
}
pub const SYNCHRONIZATION_MASK: u8 = 0b11 << 2;
pub mod synchronization {
pub const NO_SYNCHRONIZATION: u8 = 0b00 << 2;
pub const ASYNCHRONOUS: u8 = 0b01 << 2;
pub const ADAPTIVE: u8 = 0b10 << 2;
pub const SYNCHRONOUS: u8 = 0b11 << 2;
}
pub const USAGE_MASK: u8 = 0b11 << 4;
pub mod usage {
pub const DATA_ENDPOINT: u8 = 0b00 << 4;
pub const FEEDBACK_ENDPOINT: u8 = 0b01 << 4;
pub const IMPLICIT_FEEDBACK: u8 = 0b10 << 4;
}
}