Skip to main content

Shared

Struct Shared 

Source
pub struct Shared<P>(/* private fields */);
Expand description

One bridge, held by everything that needs it.

The concentrator driver takes its SPI device and its reset pin as two values it owns, and over USB both are the same bridge. This is how they share it.

Implementations§

Source§

impl<P: Read + Write> Shared<P>

Source

pub fn new(bridge: Bridge<P>) -> Shared<P>

Shares a bridge.

§Arguments
  • bridge - the bridge to share.
§Returns

A handle, which clones cheaply.

Source

pub fn concentrator(&self) -> BridgeSpi<P>

The SPI device the concentrator answers on.

§Returns

A device the driver takes, carrying every frame to the concentrator and the front ends behind it.

Source

pub fn listener(&self) -> BridgeSpi<P>

The SPI device the radio beside the concentrator answers on.

§Returns

A device carrying every frame to that radio, which is what a carrier check drives.

Source

pub fn pin(&self, pin: u8) -> BridgePin<P>

One of the card’s pins, as a pin the driver drives.

§Arguments
§Returns

The pin.

Source

pub fn with<T>( &self, with: impl FnOnce(&mut Bridge<P>) -> Result<T, UsbError>, ) -> Result<T, UsbError>

Does something with the bridge itself, holding it for the duration.

§Arguments
  • with - what to do.
§Returns

Whatever it returned.

§Errors

UsbError::Poisoned when another holder panicked, and whatever with returned.

Trait Implementations§

Source§

impl<P> Clone for Shared<P>

Source§

fn clone(&self) -> Shared<P>

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

Auto Trait Implementations§

§

impl<P> Freeze for Shared<P>

§

impl<P> RefUnwindSafe for Shared<P>

§

impl<P> Send for Shared<P>
where P: Send,

§

impl<P> Sync for Shared<P>
where P: Send,

§

impl<P> Unpin for Shared<P>

§

impl<P> UnsafeUnpin for Shared<P>

§

impl<P> UnwindSafe for Shared<P>

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.