GenericConnection

Enum GenericConnection 

Source
pub enum GenericConnection {
    Bluetooth(BluetoothConnection),
    Serial(SerialConnection),
}

Variants§

Implementations§

Source§

impl GenericConnection

Source

pub fn is_bluetooth(&self) -> bool

Returns whether the connection is over bluetooth.

Source

pub fn is_wired(&self) -> bool

Returns whether the connection is over serial.

Source

pub fn is_controller(&self) -> bool

Returns whether the connection is a controller.

Source

pub async fn is_paired(&self) -> Result<bool, GenericError>

Checks if the connection is paired. If the connection is not over bluetooth, this function will return an error.

Source

pub async fn request_pairing(&mut self) -> Result<(), GenericError>

Requests pairing with the device.

§Errors

If the connection is not over bluetooth, this function will return an error. This function will also error if there is a communication error while requesting pairing.

Source

pub async fn authenticate_pairing( &mut self, pin: [u8; 4], ) -> Result<(), GenericError>

Attempts to authenticate the pairing request with the given pin. If the connection is not over bluetooth, this function will return an error.

Trait Implementations§

Source§

impl Connection for GenericConnection

Source§

type Error = GenericError

Source§

fn connection_type(&self) -> ConnectionType

Source§

async fn send(&mut self, packet: impl Encode) -> Result<(), GenericError>

Sends a packet.
Source§

async fn recv<P: Decode + CheckHeader>( &mut self, timeout: Duration, ) -> Result<P, GenericError>

Receives a packet.
Source§

async fn read_user(&mut self, buf: &mut [u8]) -> Result<usize, GenericError>

Read user program output.
Source§

async fn write_user(&mut self, buf: &[u8]) -> Result<usize, GenericError>

Write to user program stdio.
Source§

fn execute_command<C: Command>( &mut self, command: C, ) -> impl Future<Output = Result<C::Output, Self::Error>>

Executes a Command.
Source§

async fn handshake<D: Decode + CheckHeader>( &mut self, timeout: Duration, retries: usize, packet: impl Encode + Clone, ) -> Result<D, Self::Error>

Sends a packet and waits for a response. Read more
Source§

impl From<BluetoothConnection> for GenericConnection

Source§

fn from(c: BluetoothConnection) -> Self

Converts to this type from the input type.
Source§

impl From<SerialConnection> for GenericConnection

Source§

fn from(c: SerialConnection) -> Self

Converts to this type from the input type.

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> 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 = 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.