SetLen

Trait SetLen 

pub trait SetLen {
    // Required method
    unsafe fn set_len(&mut self, len: usize);

    // Provided methods
    unsafe fn advance_to(&mut self, len: usize)
       where Self: IoBuf { ... }
    unsafe fn advance_vec_to(&mut self, len: usize)
       where Self: IoVectoredBuf { ... }
    fn clear(&mut self)
       where Self: IoBuf { ... }
}
Expand description

A helper trait for set_len like methods.

Required Methods§

unsafe fn set_len(&mut self, len: usize)

Set the buffer length.

§Safety
  • len must be less or equal than as_uninit().len().
  • The bytes in the range [buf_len(), len) must be initialized.

Provided Methods§

unsafe fn advance_to(&mut self, len: usize)
where Self: IoBuf,

Set the buffer length to len. If len is less than the current length, this operation is a no-op.

§Safety
  • len must be less or equal than as_uninit().len().
  • The bytes in the range [buf_len(), len) must be initialized.

unsafe fn advance_vec_to(&mut self, len: usize)
where Self: IoVectoredBuf,

Set the vector buffer’s total length to len. If len is less than the current total length, this operation is a no-op.

§Safety
  • len must be less or equal than total_len().
  • The bytes in the range [total_len(), len) must be initialized.

fn clear(&mut self)
where Self: IoBuf,

Clear the buffer, setting its length to 0 without touching its content or capacity.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

§

impl SetLen for ()

§

unsafe fn set_len(&mut self, len: usize)

§

impl SetLen for BorrowedBuf<'static>

Available on crate feature read_buf only.
§

unsafe fn set_len(&mut self, len: usize)

§

impl SetLen for [u8]

§

unsafe fn set_len(&mut self, len: usize)

§

impl<B> SetLen for &'static mut B
where B: SetLen + ?Sized,

§

unsafe fn set_len(&mut self, len: usize)

§

impl<T> SetLen for [T]
where T: IoBufMut,

§

unsafe fn set_len(&mut self, len: usize)

§

impl<T> SetLen for (T,)
where T: IoBufMut,

§

unsafe fn set_len(&mut self, len: usize)

§

impl<T, Rest> SetLen for (T, Rest)
where T: IoBufMut, Rest: IoVectoredBufMut,

§

unsafe fn set_len(&mut self, len: usize)

§

impl<T, const N: usize> SetLen for [T; N]
where T: IoBufMut,

§

unsafe fn set_len(&mut self, len: usize)

§

impl<T, const N: usize> SetLen for SmallVec<[T; N]>
where T: IoBufMut, [T; N]: Array<Item = T>,

Available on crate feature smallvec only.
§

unsafe fn set_len(&mut self, len: usize)

§

impl<const N: usize> SetLen for SmallVec<[u8; N]>
where [u8; N]: Array<Item = u8>,

Available on crate feature smallvec only.
§

unsafe fn set_len(&mut self, len: usize)

§

impl<const N: usize> SetLen for [u8; N]

§

unsafe fn set_len(&mut self, len: usize)

Implementors§

§

impl SetLen for BytesMut

Available on crate feature bytes only.
§

impl<A> SetLen for Vec<u8, A>
where A: Allocator + 'static,

§

impl<B, A> SetLen for Box<B, A>
where B: SetLen + ?Sized, A: Allocator + 'static,

§

impl<T> SetLen for Slice<T>
where T: SetLen,

§

impl<T> SetLen for Uninit<T>
where T: SetLen + IoBuf,

§

impl<T> SetLen for VectoredBufIter<T>
where T: IoVectoredBuf + SetLen,

§

impl<T> SetLen for VectoredSlice<T>
where T: SetLen,

§

impl<T, A> SetLen for Vec<T, A>
where T: IoBufMut, A: Allocator + 'static,

§

impl<T, const N: usize> SetLen for ArrayVec<T, N>
where T: IoBufMut,

Available on crate feature arrayvec only.
§

impl<const N: usize> SetLen for ArrayVec<u8, N>

Available on crate feature arrayvec only.