Trait MutNonBlockingRx

Source
pub trait MutNonBlockingRx {
    type Error;

    // Required method
    fn getc_try(&mut self) -> Result<Option<u8>, Self::Error>;

    // Provided method
    fn gets_try<I>(
        &mut self,
        buffer: &mut I,
    ) -> Result<usize, (usize, Self::Error)>
       where I: AsMut<[u8]> + ?Sized { ... }
}
Expand description

Implementors of this trait offer octet based serial data reception using a non-blocking API, and requiring a mutable reference to self.

Required Associated Types§

Source

type Error

The error type returned if getc fails.

Required Methods§

Source

fn getc_try(&mut self) -> Result<Option<u8>, Self::Error>

Attempt to read a single octet from the port’s receiver; if the buffer is empty return None.

In some implementations, this can result in an Error. If not, use type Error = !.

If it times out, Ok(None) is returned. If it receives data, Ok(Some(data)) is returned. If it fails, Err(…) is returned.

Provided Methods§

Source

fn gets_try<I>(&mut self, buffer: &mut I) -> Result<usize, (usize, Self::Error)>
where I: AsMut<[u8]> + ?Sized,

Read a specified number of octets into the given buffer, or until the data runs out.

In some implementations, this can result in an Error. If not, use type Error = !.

If the result is Ok(size) but size <= buffer.len(), you ran out of data.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§