Struct core_io::IoSlice [−][src]
A buffer type used with Write::write_vectored
.
It is semantically a wrapper around an &[u8]
, but is guaranteed to be
ABI compatible with the iovec
type on Unix platforms and WSABUF
on
Windows.
Implementations
impl<'a> IoSlice<'a>
[src]
pub fn new(buf: &'a [u8]) -> IoSlice<'a>
[src]
Creates a new IoSlice
wrapping a byte slice.
Panics
Panics on Windows if the slice is larger than 4GB.
pub fn advance<'b>(
bufs: &'b mut [IoSlice<'a>],
n: usize
) -> &'b mut [IoSlice<'a>]
[src]
bufs: &'b mut [IoSlice<'a>],
n: usize
) -> &'b mut [IoSlice<'a>]
Advance the internal cursor of the slice.
Notes
Elements in the slice may be modified if the cursor is not advanced to
the end of the slice. For example if we have a slice of buffers with 2
IoSlice
s, both of length 8, and we advance the cursor by 10 bytes the
first IoSlice
will be untouched however the second will be modified to
remove the first 2 bytes (10 - 8).
Examples
#![feature(io_slice_advance)] use std::io::IoSlice; use std::ops::Deref; let buf1 = [1; 8]; let buf2 = [2; 16]; let buf3 = [3; 8]; let mut bufs = &mut [ IoSlice::new(&buf1), IoSlice::new(&buf2), IoSlice::new(&buf3), ][..]; // Mark 10 bytes as written. bufs = IoSlice::advance(bufs, 10); assert_eq!(bufs[0].deref(), [2; 14].as_ref()); assert_eq!(bufs[1].deref(), [3; 8].as_ref());
Trait Implementations
impl<'a> Clone for IoSlice<'a>
[src]
fn clone(&self) -> IoSlice<'a>
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<'a> Copy for IoSlice<'a>
[src]
impl<'a> Debug for IoSlice<'a>
[src]
impl<'a> Deref for IoSlice<'a>
[src]
impl<'a> Send for IoSlice<'a>
[src]
impl<'a> Sync for IoSlice<'a>
[src]
Auto Trait Implementations
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,