Trait compio_buf::IoVectoredBufMut
source · pub trait IoVectoredBufMut: IoVectoredBuf + SetBufInit {
// Required methods
fn as_dyn_mut_bufs(&mut self) -> impl Iterator<Item = &mut dyn IoBufMut>;
fn owned_iter_mut(
self,
) -> Result<OwnedIter<impl OwnedIteratorMut<Inner = Self>>, Self>;
// Provided method
unsafe fn as_io_slices_mut(&mut self) -> Vec<IoSliceMut> { ... }
}
Expand description
A trait for mutable vectored buffers.
Required Methods§
sourcefn as_dyn_mut_bufs(&mut self) -> impl Iterator<Item = &mut dyn IoBufMut>
fn as_dyn_mut_bufs(&mut self) -> impl Iterator<Item = &mut dyn IoBufMut>
Iterate the inner buffers.
sourcefn owned_iter_mut(
self,
) -> Result<OwnedIter<impl OwnedIteratorMut<Inner = Self>>, Self>
fn owned_iter_mut( self, ) -> Result<OwnedIter<impl OwnedIteratorMut<Inner = Self>>, Self>
Create an owned iterator to make it easy to pass this vectored buffer as a regular buffer.
use compio_buf::{IoBuf, IoVectoredBufMut};
let bufs = [vec![1u8, 2], vec![3, 4]];
let iter = bufs.owned_iter_mut().unwrap();
assert_eq!(iter.as_slice(), &[1, 2]);
let iter = iter.next().unwrap();
assert_eq!(iter.as_slice(), &[3, 4]);
let iter = iter.next();
assert!(iter.is_err());
The time complexity of the returned iterator depends on the
implementation of Iterator::nth
of IoVectoredBuf::as_dyn_bufs
.
Provided Methods§
sourceunsafe fn as_io_slices_mut(&mut self) -> Vec<IoSliceMut>
unsafe fn as_io_slices_mut(&mut self) -> Vec<IoSliceMut>
An iterator for the IoSliceMut
s of the buffers.
§Safety
The return slice will not live longer than self. It is static to provide convenience from writing self-referenced structure.
Object Safety§
This trait is not object safe.
Implementations on Foreign Types§
source§impl<T: IoBufMut> IoVectoredBufMut for &'static mut [T]
impl<T: IoBufMut> IoVectoredBufMut for &'static mut [T]
fn as_dyn_mut_bufs(&mut self) -> impl Iterator<Item = &mut dyn IoBufMut>
fn owned_iter_mut( self, ) -> Result<OwnedIter<impl OwnedIteratorMut<Inner = Self>>, Self>
source§impl<T: IoBufMut, A: Allocator + 'static> IoVectoredBufMut for Vec<T, A>
impl<T: IoBufMut, A: Allocator + 'static> IoVectoredBufMut for Vec<T, A>
fn as_dyn_mut_bufs(&mut self) -> impl Iterator<Item = &mut dyn IoBufMut>
fn owned_iter_mut( self, ) -> Result<OwnedIter<impl OwnedIteratorMut<Inner = Self>>, Self>
source§impl<T: IoBufMut, const N: usize> IoVectoredBufMut for [T; N]
impl<T: IoBufMut, const N: usize> IoVectoredBufMut for [T; N]
fn as_dyn_mut_bufs(&mut self) -> impl Iterator<Item = &mut dyn IoBufMut>
fn owned_iter_mut( self, ) -> Result<OwnedIter<impl OwnedIteratorMut<Inner = Self>>, Self>
source§impl<T: IoBufMut, const N: usize> IoVectoredBufMut for ArrayVec<T, N>
Available on crate feature arrayvec
only.
impl<T: IoBufMut, const N: usize> IoVectoredBufMut for ArrayVec<T, N>
Available on crate feature
arrayvec
only.