Trait compio_buf::IoVectoredBuf

source ·
pub trait IoVectoredBuf: 'static {
    type Buf: IoBuf;
    type OwnedIter: OwnedIterator<Inner = Self> + IoBuf;

    // Required methods
    fn iter_buf(&self) -> impl Iterator<Item = MaybeOwned<'_, Self::Buf>>;
    fn owned_iter(self) -> Result<Self::OwnedIter, Self>
       where Self: Sized;

    // Provided method
    unsafe fn io_slices(&self) -> Vec<IoSlice> { ... }
}
Expand description

A trait for vectored buffers.

Required Associated Types§

source

type Buf: IoBuf

The buffer.

source

type OwnedIter: OwnedIterator<Inner = Self> + IoBuf

The owned iterator that wraps Self.

Required Methods§

source

fn iter_buf(&self) -> impl Iterator<Item = MaybeOwned<'_, Self::Buf>>

An iterator over the buffers that’s either owned or borrowed with MaybeOwned.

source

fn owned_iter(self) -> Result<Self::OwnedIter, Self>
where Self: Sized,

Wrap self into an owned iterator.

Provided Methods§

source

unsafe fn io_slices(&self) -> Vec<IoSlice>

Collected IoSlices 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: IoBuf> IoVectoredBuf for &'static [T]

source§

type Buf = T

source§

type OwnedIter = IndexedIter<&'static [T]>

source§

fn iter_buf(&self) -> impl Iterator<Item = MaybeOwned<'_, T>>

source§

fn owned_iter(self) -> Result<Self::OwnedIter, Self>

source§

impl<T: IoBuf> IoVectoredBuf for &'static mut [T]

source§

type Buf = T

source§

type OwnedIter = IndexedIter<&'static mut [T]>

source§

fn iter_buf(&self) -> impl Iterator<Item = MaybeOwned<'_, T>>

source§

fn owned_iter(self) -> Result<Self::OwnedIter, Self>

source§

impl<T: IoBuf, A: Allocator + 'static> IoVectoredBuf for Vec<T, A>

source§

type Buf = T

source§

type OwnedIter = IndexedIter<Vec<T, A>>

source§

fn iter_buf(&self) -> impl Iterator<Item = MaybeOwned<'_, T>>

source§

fn owned_iter(self) -> Result<Self::OwnedIter, Self>

source§

impl<T: IoBuf, const N: usize> IoVectoredBuf for [T; N]

source§

type Buf = T

source§

type OwnedIter = IndexedIter<[T; N]>

source§

fn iter_buf(&self) -> impl Iterator<Item = MaybeOwned<'_, T>>

source§

fn owned_iter(self) -> Result<Self::OwnedIter, Self>

source§

impl<T: IoBuf, const N: usize> IoVectoredBuf for ArrayVec<T, N>

Available on crate feature arrayvec only.
source§

type Buf = T

source§

type OwnedIter = IndexedIter<ArrayVec<T, N>>

source§

fn iter_buf(&self) -> impl Iterator<Item = MaybeOwned<'_, T>>

source§

fn owned_iter(self) -> Result<Self::OwnedIter, Self>

Implementors§