Struct compio_buf::IoSlice

source ·
pub struct IoSlice(/* private fields */);
Expand description

An unsafe, 'static, initialized, and immutable slice of bytes to interact with system API.

Like IoSlice in std, IoSlice guarantees the ABI compatibility on unix and windows, but without the lifetime, makes it easier to use with compio driver at the cost of unsafe to construct. IoSlice should only be used with compio driver.

Implementations§

source§

impl IoSlice

source

pub unsafe fn new(ptr: *const u8, len: usize) -> Self

Create a new IoSlice from a raw pointer and a length.

§Safety

The caller must ensure that:

  • the pointer is valid for the lifetime of the IoSlice
  • the length is correct
  • the content of the buffer is initialized
  • the pointer is not used for mutating while the IoSlice is in use
source

pub unsafe fn from_slice(slice: &[u8]) -> Self

Create a new IoSlice from an initialized slice.

§Safety

The caller must ensure that, during the lifetime of the IoSlice, the slice is valid the and is not used for mutating.

source

pub fn as_ptr(&self) -> *const u8

Get the pointer to the buffer.

source

pub fn len(&self) -> usize

Get the length of the buffer.

source

pub fn is_empty(&self) -> bool

Check if the buffer is empty.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.