pub struct SmlReaderBuilder<Buf: Buffer> { /* private fields */ }
Expand description
Builder struct for SmlReader
that allows configuring the internal buffer type.
See here for an explanation of the different internal buffer types and how to use the builder to customize them.
Implementations§
Source§impl<Buf: Buffer> SmlReaderBuilder<Buf>
impl<Buf: Buffer> SmlReaderBuilder<Buf>
Sourcepub fn from_reader<R: Read>(self, reader: R) -> SmlReader<IoReader<R>, Buf>
Available on crate feature std
only.
pub fn from_reader<R: Read>(self, reader: R) -> SmlReader<IoReader<R>, Buf>
std
only.Build an SmlReader
from a type implementing std::io::Read
.
This function is available only if sml-rs is built with the "std"
feature.
§Examples
let data = [1, 2, 3];
let cursor = std::io::Cursor::new(data); // implements std::io::Read
let reader = SmlReader::with_static_buffer::<1024>().from_reader(cursor);
Sourcepub fn from_eh_reader<R: Read<u8, Error = E>, E>(
self,
reader: R,
) -> SmlReader<EhReader<R, E>, Buf>
Available on crate feature embedded_hal
only.
pub fn from_eh_reader<R: Read<u8, Error = E>, E>( self, reader: R, ) -> SmlReader<EhReader<R, E>, Buf>
embedded_hal
only.Build an SmlReader
from a type implementing embedded_hal::serial::Read<u8>
.
This function is available only if sml-rs is built with the "embedded-hal"
feature.
§Examples
// usually provided by hardware abstraction layers (HALs) for specific chips
// let pin = ...;
let reader = SmlReader::with_static_buffer::<1024>().from_eh_reader(pin);
Sourcepub fn from_slice(self, reader: &[u8]) -> SmlReader<SliceReader<'_>, Buf>
pub fn from_slice(self, reader: &[u8]) -> SmlReader<SliceReader<'_>, Buf>
Build an SmlReader
from a slice of bytes.
§Examples
let data: &[u8] = &[1, 2, 3];
let reader = SmlReader::with_static_buffer::<1024>().from_slice(data);
Sourcepub fn from_iterator<B, I>(
self,
iter: I,
) -> SmlReader<IterReader<I::IntoIter, B>, Buf>
pub fn from_iterator<B, I>( self, iter: I, ) -> SmlReader<IterReader<I::IntoIter, B>, Buf>
Build an SmlReader
from a type that can be turned into a byte iterator.
§Examples
let data: [u8; 3] = [1, 2, 3];
let builder = SmlReader::with_static_buffer::<1024>();
let reader = builder.clone().from_iterator(data.clone()); // [u8; 3]
let reader = builder.clone().from_iterator(&data); // &[u8; 3]
let reader = builder.clone().from_iterator(data.as_slice()); // &[u8]
let reader = builder.clone().from_iterator(data.iter()); // impl Iterator<Item = &u8>
let reader = builder.clone().from_iterator(data.into_iter()); // impl Iterator<Item = u8>
Trait Implementations§
Auto Trait Implementations§
impl<Buf> Freeze for SmlReaderBuilder<Buf>
impl<Buf> RefUnwindSafe for SmlReaderBuilder<Buf>where
Buf: RefUnwindSafe,
impl<Buf> Send for SmlReaderBuilder<Buf>where
Buf: Send,
impl<Buf> Sync for SmlReaderBuilder<Buf>where
Buf: Sync,
impl<Buf> Unpin for SmlReaderBuilder<Buf>where
Buf: Unpin,
impl<Buf> UnwindSafe for SmlReaderBuilder<Buf>where
Buf: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more