pub trait IoBuf: 'static {
// Required method
fn as_init(&self) -> &[u8] ⓘ;
// Provided methods
fn buf_len(&self) -> usize { ... }
fn buf_ptr(&self) -> *const u8 { ... }
fn is_empty(&self) -> bool { ... }
fn slice(self, range: impl RangeBounds<usize>) -> Slice<Self>
where Self: Sized { ... }
fn into_reader(self) -> Reader<Self> ⓘ
where Self: Sized { ... }
fn as_reader(&self) -> ReaderRef<'_, Self> ⓘ { ... }
}Expand description
A trait for immutable buffers.
The IoBuf trait is implemented by buffer types that can be passed to
immutable completion-based IO operations, like writing its content to a
file. This trait will only take initialized bytes of a buffer into account.
Required Methods§
Provided Methods§
Sourcefn into_reader(self) -> Reader<Self> ⓘwhere
Self: Sized,
fn into_reader(self) -> Reader<Self> ⓘwhere
Self: Sized,
Create a Reader from this buffer, which implements
std::io::Read.
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.
Implementations on Foreign Types§
Source§impl IoBuf for BorrowedBuf<'static>
Available on crate feature read_buf only.
impl IoBuf for BorrowedBuf<'static>
Available on crate feature
read_buf only.Implementors§
impl IoBuf for Bytes
Available on crate feature
bytes only.impl IoBuf for String
impl IoBuf for BytesMut
Available on crate feature
bytes only.impl IoBuf for Mmap
Available on crate feature
memmap2 only.impl IoBuf for MmapMut
Available on crate feature
memmap2 only.impl<A> IoBuf for Vec<u8, A>where
A: Allocator + 'static,
impl<B, A> IoBuf for Box<B, A>
impl<B, A> IoBuf for Rc<B, A>
impl<B, A> IoBuf for Arc<B, A>
impl<T> IoBuf for Slice<T>where
T: IoBuf,
impl<T> IoBuf for Uninit<T>where
T: IoBuf,
impl<T> IoBuf for VectoredBufIter<T>where
T: IoVectoredBuf,
impl<const N: usize> IoBuf for AncillaryBuf<N>
impl<const N: usize> IoBuf for ArrayVec<u8, N>
Available on crate feature
arrayvec only.