Trait a10::io::BufMutSlice

source ·
pub unsafe trait BufMutSlice<const N: usize>: 'static {
    // Required methods
    unsafe fn as_iovecs_mut(&mut self) -> [iovec; N];
    unsafe fn set_init(&mut self, n: usize);
}
Expand description

Trait that defines the behaviour of buffers used in reading using vectored I/O, which requires mutable access.

§Safety

This has the same safety requirements as BufMut, but then for all buffers used.

Required Methods§

source

unsafe fn as_iovecs_mut(&mut self) -> [iovec; N]

Returns the writable buffers as iovec structures.

§Safety

This has the same safety requirements as BufMut::parts_mut, but then for all buffers used.

source

unsafe fn set_init(&mut self, n: usize)

Mark n bytes as initialised.

§Safety

The caller must ensure that n bytes are initialised in the vectors return by BufMutSlice::as_iovecs_mut.

The implementation must ensure that that proper buffer(s) are initialised. For example when this is called with n = 10 with two buffers of size 8 the implementation should initialise the first buffer with n = 8 and the second with n = 10 - 8 = 2.

Implementations on Foreign Types§

source§

impl<A: BufMut, B: BufMut> BufMutSlice<2> for (A, B)

source§

unsafe fn as_iovecs_mut(&mut self) -> [iovec; 2]

source§

unsafe fn set_init(&mut self, n: usize)

source§

impl<A: BufMut, B: BufMut, C: BufMut> BufMutSlice<3> for (A, B, C)

source§

unsafe fn as_iovecs_mut(&mut self) -> [iovec; 3]

source§

unsafe fn set_init(&mut self, n: usize)

source§

impl<A: BufMut, B: BufMut, C: BufMut, D: BufMut> BufMutSlice<4> for (A, B, C, D)

source§

unsafe fn as_iovecs_mut(&mut self) -> [iovec; 4]

source§

unsafe fn set_init(&mut self, n: usize)

source§

impl<A: BufMut, B: BufMut, C: BufMut, D: BufMut, E: BufMut> BufMutSlice<5> for (A, B, C, D, E)

source§

unsafe fn as_iovecs_mut(&mut self) -> [iovec; 5]

source§

unsafe fn set_init(&mut self, n: usize)

source§

impl<A: BufMut, B: BufMut, C: BufMut, D: BufMut, E: BufMut, F: BufMut> BufMutSlice<6> for (A, B, C, D, E, F)

source§

unsafe fn as_iovecs_mut(&mut self) -> [iovec; 6]

source§

unsafe fn set_init(&mut self, n: usize)

source§

impl<A: BufMut, B: BufMut, C: BufMut, D: BufMut, E: BufMut, F: BufMut, G: BufMut> BufMutSlice<7> for (A, B, C, D, E, F, G)

source§

unsafe fn as_iovecs_mut(&mut self) -> [iovec; 7]

source§

unsafe fn set_init(&mut self, n: usize)

source§

impl<A: BufMut, B: BufMut, C: BufMut, D: BufMut, E: BufMut, F: BufMut, G: BufMut, I: BufMut> BufMutSlice<8> for (A, B, C, D, E, F, G, I)

source§

unsafe fn as_iovecs_mut(&mut self) -> [iovec; 8]

source§

unsafe fn set_init(&mut self, n: usize)

source§

impl<B: BufMut, const N: usize> BufMutSlice<N> for [B; N]

source§

unsafe fn as_iovecs_mut(&mut self) -> [iovec; N]

source§

unsafe fn set_init(&mut self, n: usize)

Implementors§