[][src]Crate ioslice

#![no_std]-friendly wrappers over the std::io::IoSlice and std::io::IoSliceMut, which are shared slices and exclusive slices, respectively, and ABI-compatible with system types for I/O vectors.

Internally, the struct will store the following based on crate features:

  • std - wrapping std::io::IoSlice directly, with accessors for it as well as conversion functions and From impls.
  • libc (and #[cfg(unix)]) - wrapping libc::iovec directly on platforms that support it. A marker is also stored, to safely wrap the raw pointer, and forcing usage of this API to follow the borrow checker rules.
  • (none) - wrapping a regular slice, that may not have the same ABI guarantees as the types from std or libc have.

IoSlice will however implement AsRef<[u8]>, Borrow<[u8]>, and Deref<Target = [u8]> regardless of the features used.

Structs

AllocationError

An error that may occur if allocating an I/O box fails.

IoBox

An owned chunk of memory, that is ABI-compatible with libc::iovec. At the moment this does not work on Windows.

IoSlice

A #![no_std]-friendly wrapper over the std::io::IoSliceMut.

IoSliceMut

A #![no_std]-friendly wrapper over the std::io::IoSliceMut.

Enums

Initialized
Uninitialized

Traits

Initialization