[−][src]Struct saberrs::SabertoothPortShared
Clonable variant of SabertoothPort.
It is more flexible, for example it allows to mix several protocols
(PlainText and PacketSerial) with the same port. However in most cases
SabertoothPort
is enough and recommended.
The downside of SabertoothPortShared
, besides possible performance loss,
is that it is not
Send.
Example
use std::time::Duration; use saberrs::{Result, SabertoothSerial, SabertoothPortShared}; use saberrs::sabertooth2x32::{PacketSerial, PacketType, PlainText, Sabertooth2x32}; let mut dev = SabertoothPortShared::new("/dev/ttyS2")?; // The following interfaces will all communicate using the same port, but // using different protocols. let mut sabertext = PlainText::from(&dev); let mut saberchecksum = PacketSerial::from(&dev).with_packet_type(PacketType::Checksum); let mut sabercrc = PacketSerial::from(&dev).with_packet_type(PacketType::CRC);
Requires the "serialport" feature (enabled by default).
Implementations
impl SabertoothPortShared
[src]
pub fn new(port: &str) -> Result<SabertoothPortShared>
[src]
Create a new SabertoothPortShared
with a default configuration
Trait Implementations
impl Clone for SabertoothPortShared
[src]
fn clone(&self) -> SabertoothPortSharedⓘNotable traits for SabertoothPortShared
impl Read for SabertoothPortSharedimpl Write for SabertoothPortShared
[src]
Notable traits for SabertoothPortShared
impl Read for SabertoothPortSharedimpl Write for SabertoothPortShared
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Debug for SabertoothPortShared
[src]
impl Read for SabertoothPortShared
[src]
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
[src]
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
1.36.0[src]
fn is_read_vectored(&self) -> bool
[src]
unsafe fn initializer(&self) -> Initializer
[src]
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
1.0.0[src]
fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
1.0.0[src]
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
1.6.0[src]
fn by_ref(&mut self) -> &mut Self
1.0.0[src]
fn bytes(self) -> Bytes<Self>
1.0.0[src]
fn chain<R>(self, next: R) -> Chain<Self, R> where
R: Read,
1.0.0[src]
R: Read,
fn take(self, limit: u64) -> Take<Self>
1.0.0[src]
impl SabertoothSerial for SabertoothPortShared
[src]
fn set_timeout(&mut self, timeout: Duration) -> Result<()>
[src]
fn timeout(&self) -> Duration
[src]
fn set_baud_rate(&mut self, baud_rate: u32) -> Result<()>
[src]
fn baud_rate(&self) -> Result<u32>
[src]
fn clear_all(&self) -> Result<()>
[src]
impl Write for SabertoothPortShared
[src]
fn write(&mut self, buf: &[u8]) -> Result<usize>
[src]
fn flush(&mut self) -> Result<()>
[src]
fn write_vectored(&mut self, bufs: &[IoSlice<'_>]) -> Result<usize, Error>
1.36.0[src]
fn is_write_vectored(&self) -> bool
[src]
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
1.0.0[src]
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
[src]
fn write_fmt(&mut self, fmt: Arguments<'_>) -> Result<(), Error>
1.0.0[src]
fn by_ref(&mut self) -> &mut Self
1.0.0[src]
Auto Trait Implementations
impl !RefUnwindSafe for SabertoothPortShared
impl !Send for SabertoothPortShared
impl !Sync for SabertoothPortShared
impl Unpin for SabertoothPortShared
impl !UnwindSafe for SabertoothPortShared
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,