Struct RawBuf

Source
pub struct RawBuf { /* private fields */ }
Expand description

RawBuf is not a real buf. It only hold the pointer of the buffer. Users must make sure the buffer behind the pointer is always valid. Which means, user must:

  1. await the future with RawBuf Ready before drop the real buffer
  2. make sure the pointer and length is valid before the future Ready

Implementations§

Source§

impl RawBuf

Source

pub unsafe fn uninit() -> Self

Create a empty RawBuf.

§Safety

do not use uninitialized RawBuf directly.

Source

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

Create a new RawBuf with given pointer and length.

§Safety

make sure the pointer and length is valid when RawBuf is used.

Source§

impl RawBuf

Source

pub unsafe fn new_from_iovec_mut<T: IoVecBufMut>(data: &mut T) -> Option<Self>

Create a new RawBuf with the first iovec part.

§Safety

make sure the pointer and length is valid when RawBuf is used.

Source

pub unsafe fn new_from_iovec<T: IoVecBuf>(data: &T) -> Option<Self>

Create a new RawBuf with the first iovec part.

§Safety

make sure the pointer and length is valid when RawBuf is used.

Trait Implementations§

Source§

impl IoBuf for RawBuf

Source§

fn read_ptr(&self) -> *const u8

Returns a raw pointer to the vector’s buffer. Read more
Source§

fn bytes_init(&self) -> usize

Number of initialized bytes. Read more
Source§

fn as_slice(&self) -> &[u8]

Returns a slice of the buffer.
Source§

fn slice(self, range: impl RangeBounds<usize>) -> Slice<Self>
where Self: Sized,

Returns a view of the buffer with the specified range.
Source§

unsafe fn slice_unchecked(self, range: impl RangeBounds<usize>) -> Slice<Self>
where Self: Sized,

Returns a view of the buffer with the specified range without boundary checking. Read more
Source§

impl IoBufMut for RawBuf

Source§

fn write_ptr(&mut self) -> *mut u8

Returns a raw mutable pointer to the vector’s buffer. Read more
Source§

fn bytes_total(&mut self) -> usize

Total size of the buffer, including uninitialized memory, if any. Read more
Source§

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

Updates the number of initialized bytes. Read more
Source§

fn slice_mut(self, range: impl RangeBounds<usize>) -> SliceMut<Self>
where Self: Sized + IoBuf,

Returns a view of the buffer with the specified range. Read more
Source§

unsafe fn slice_mut_unchecked( self, range: impl RangeBounds<usize>, ) -> SliceMut<Self>
where Self: Sized,

Returns a view of the buffer with the specified range. Read more

Auto Trait Implementations§

§

impl Freeze for RawBuf

§

impl RefUnwindSafe for RawBuf

§

impl !Send for RawBuf

§

impl !Sync for RawBuf

§

impl Unpin for RawBuf

§

impl UnwindSafe for RawBuf

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

Source§

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

Source§

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.