Skip to main content

Speed

Enum Speed 

Source
#[repr(u8)]
pub enum Speed { Low = 0, Full = 1, High = 2, Wireless = 3, SuperSpeed = 4, SuperSpeedPlus = 5, }
Expand description

USB 设备速度

Variants§

§

Low = 0

§

Full = 1

§

High = 2

§

Wireless = 3

§

SuperSpeed = 4

§

SuperSpeedPlus = 5

Implementations§

Source§

impl Speed

Source

pub fn from_usb2_hub_status(raw: u16) -> Self

从 USB 2.0 Hub wPortStatus 解析速度

根据 USB 2.0 规范(第 11.24.2.7 节):

  • Bit 9 (0x0200): Low Speed
  • Bit 10 (0x0400): High Speed
  • Bit 11 (0x0800): SuperSpeed (USB 3.0)
  • 默认: Full Speed
Source

pub fn from_xhci_portsc(speed_value: u8) -> Self

从 xHCI PORTSC PortSpeed 字段解析速度

根据 xHCI 规范(第 4.19.2 节):

  • 1 = Full Speed
  • 2 = Low Speed
  • 3 = High Speed
  • 4 = SuperSpeed
  • 5 = SuperSpeedPlus
Source

pub fn to_xhci_slot_value(&self) -> u8

转换为 xHCI Slot Context 速度值

根据 xHCI 规范(第 6.2.2 节)Slot Context Speed 字段:

  • 1 = Full Speed
  • 2 = Low Speed
  • 3 = High Speed
  • 4 = Super Speed
Source

pub fn to_xhci_portsc_value(&self) -> u8

Convert to the raw PORTSC.PortSpeed encoding used by xHCI registers.

Values follow xHCI 4.19.2: 1=FS, 2=LS, 3=HS, 4=SS, 5=SS+.

Source

pub fn requires_tt(&self, hub_speed: Self) -> bool

判断是否需要 Transaction Translator

根据 xHCI 规范:

  • LS/FS 设备连接在 HS Hub 上需要 TT
Source

pub fn is_low_or_full_speed(&self) -> bool

判断设备是否为 Low Speed 或 Full Speed

Trait Implementations§

Source§

impl Clone for Speed

Source§

fn clone(&self) -> Speed

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Speed

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Speed

Source§

fn default() -> Speed

Returns the “default value” for a type. Read more
Source§

impl From<u8> for Speed

Source§

fn from(value: u8) -> Self

Converts to this type from the input type.
Source§

impl Hash for Speed

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for Speed

Source§

fn eq(&self, other: &Speed) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for Speed

Source§

impl Eq for Speed

Source§

impl StructuralPartialEq for Speed

Auto Trait Implementations§

§

impl Freeze for Speed

§

impl RefUnwindSafe for Speed

§

impl Send for Speed

§

impl Sync for Speed

§

impl Unpin for Speed

§

impl UnwindSafe for Speed

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.