[−][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);
Methods
impl SabertoothPortShared
[src]
pub fn new(port: &str) -> Result<SabertoothPortShared>
[src]
Create a new SabertoothPortShared
with a default configuration
Trait Implementations
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<'_> From<&'_ SabertoothPortShared> for PacketSerial<SabertoothPortShared>
[src]
fn from(dev: &SabertoothPortShared) -> Self
[src]
impl<'_> From<&'_ SabertoothPortShared> for PlainText<SabertoothPortShared>
[src]
fn from(dev: &SabertoothPortShared) -> Self
[src]
impl Clone for SabertoothPortShared
[src]
ⓘImportant traits for SabertoothPortSharedfn clone(&self) -> SabertoothPortShared
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
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]
Like read
, except that it reads into a slice of buffers. Read more
unsafe fn initializer(&self) -> Initializer
[src]
read_initializer
)Determines if this Read
er can work with buffers of uninitialized memory. Read more
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
1.0.0[src]
Read all bytes until EOF in this source, placing them into buf
. Read more
fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
1.0.0[src]
Read all bytes until EOF in this source, appending them to buf
. Read more
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
1.6.0[src]
Read the exact number of bytes required to fill buf
. Read more
fn by_ref(&mut self) -> &mut Self
1.0.0[src]
Creates a "by reference" adaptor for this instance of Read
. Read more
fn bytes(self) -> Bytes<Self>
1.0.0[src]
Transforms this Read
instance to an [Iterator
] over its bytes. Read more
fn chain<R>(self, next: R) -> Chain<Self, R> where
R: Read,
1.0.0[src]
R: Read,
Creates an adaptor which will chain this stream with another. Read more
fn take(self, limit: u64) -> Take<Self>
1.0.0[src]
Creates an adaptor which will read at most limit
bytes from it. Read more
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]
Like write
, except that it writes from a slice of buffers. Read more
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
1.0.0[src]
Attempts to write an entire buffer into this writer. Read more
fn write_fmt(&mut self, fmt: Arguments) -> Result<(), Error>
1.0.0[src]
Writes a formatted string into this writer, returning any error encountered. Read more
fn by_ref(&mut self) -> &mut Self
1.0.0[src]
Creates a "by reference" adaptor for this instance of Write
. Read more
Auto Trait Implementations
impl !Send for SabertoothPortShared
impl Unpin for SabertoothPortShared
impl !Sync for SabertoothPortShared
impl !UnwindSafe for SabertoothPortShared
impl !RefUnwindSafe for SabertoothPortShared
Blanket Implementations
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>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
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> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,