embassy-usb

Crates

git

Versions

default

Flavors

Skip to main content

Config

Struct Config 

Source
pub struct Config {
    pub max_packet_size: u16,
    pub vendor_id: [u8; 8],
    pub product_id: [u8; 16],
    pub product_revision_level: [u8; 4],
    pub serial_number: [u8; 32],
    pub serial_number_len: u8,
    pub double_buffered: bool,
}
Expand description

Configuration for the USB Mass Storage Class.

Fields§

§max_packet_size: u16

Maximum packet size for Bulk endpoints (typically 64 for Full Speed, 512 for High Speed).

§vendor_id: [u8; 8]

Vendor identification (8 ASCII characters, space-padded per SPC-2).

§product_id: [u8; 16]

Product identification (16 ASCII characters, space-padded per SPC-2).

§product_revision_level: [u8; 4]

Product revision level (4 ASCII characters, space-padded per SPC-2).

§serial_number: [u8; 32]

Unit serial number (up to 32 ASCII characters).

§serial_number_len: u8

Length of the unit serial number in bytes (0..=32).

§double_buffered: bool

Ask the driver to double-buffer the bulk endpoints. See Driver::alloc_endpoint_bulk_in_double_buffered.

Implementations§

Source§

impl Config

Source

pub const fn new(max_packet_size: u16) -> Self

Creates a new Config with the given max_packet_size and empty vendor/product/serial strings.

Source

pub fn vendor_id(self, vendor_id: &str) -> Self

Sets the SCSI Vendor Identification (space-padded or truncated to 8 bytes).

Source

pub fn set_vendor_id(&mut self, vendor_id: &str)

Sets the SCSI Vendor Identification (space-padded or truncated to 8 bytes).

Source

pub fn product_id(self, product_id: &str) -> Self

Sets the SCSI Product Identification (space-padded or truncated to 16 bytes).

Source

pub fn set_product_id(&mut self, product_id: &str)

Sets the SCSI Product Identification (space-padded or truncated to 16 bytes).

Source

pub fn product_revision_level(self, revision: &str) -> Self

Sets the SCSI Product Revision Level (space-padded or truncated to 4 bytes).

Source

pub fn set_product_revision_level(&mut self, revision: &str)

Sets the SCSI Product Revision Level (space-padded or truncated to 4 bytes).

Source

pub fn double_buffered(self, double_buffered: bool) -> Self

Asks the driver to double-buffer the bulk endpoints.

This improves throughput on drivers that support it, at the cost of more endpoint resources. Drivers that don’t support it allocate ordinary endpoints.

Source

pub fn serial_number(self, serial_number: &str) -> Self

Sets the Unit Serial Number (up to 32 ASCII characters).

Source

pub fn set_serial_number(&mut self, serial_number: &str)

Sets the Unit Serial Number (up to 32 ASCII characters).

Source

pub fn serial_number_bytes(&self) -> &[u8]

Returns the unit serial number bytes.

Trait Implementations§

Source§

impl Clone for Config

Source§

fn clone(&self) -> Config

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Copy for Config

Source§

impl Debug for Config

Source§

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

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

impl Default for Config

Source§

fn default() -> Self

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

impl Eq for Config

Source§

impl PartialEq for Config

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Config

Auto Trait Implementations§

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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

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.