Struct core_io::IoSlice[][src]

#[repr(transparent)]pub struct IoSlice<'a>(_);

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]

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 IoSlices, 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]

impl<'a> Copy for IoSlice<'a>[src]

impl<'a> Debug for IoSlice<'a>[src]

impl<'a> Deref for IoSlice<'a>[src]

type Target = [u8]

The resulting type after dereferencing.

impl<'a> Send for IoSlice<'a>[src]

impl<'a> Sync for IoSlice<'a>[src]

Auto Trait Implementations

impl<'a> Unpin for IoSlice<'a>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.