Struct DescriptorChainRegions

Source
struct DescriptorChainRegions {
    regions: SmallVec<[MemRegion; 2]>,
    current_region_index: usize,
    current_region_offset: usize,
    bytes_consumed: usize,
}

Fields§

§regions: SmallVec<[MemRegion; 2]>§current_region_index: usize§current_region_offset: usize§bytes_consumed: usize

Implementations§

Source§

impl DescriptorChainRegions

Source

fn new(regions: SmallVec<[MemRegion; 2]>) -> Self

Source

fn available_bytes(&self) -> usize

Source

fn bytes_consumed(&self) -> usize

Source

fn get_remaining_regions(&self) -> MemRegionIter<'_>

Returns all the remaining buffers in the DescriptorChain. Calling this function does not consume any bytes from the DescriptorChain. Instead callers should use the consume method to advance the DescriptorChain. Multiple calls to get with no intervening calls to consume will return the same data.

Source

fn get_remaining_regions_with_count(&self, count: usize) -> MemRegionIter<'_>

Like get_remaining_regions but guarantees that the combined length of all the returned iovecs is not greater than count. The combined length of the returned iovecs may be less than count but will always be greater than 0 as long as there is still space left in the DescriptorChain.

Source

fn get_remaining<'mem>( &self, mem: &'mem GuestMemory, ) -> SmallVec<[VolatileSlice<'mem>; 16]>

Returns all the remaining buffers in the DescriptorChain as VolatileSlices of the given GuestMemory. Calling this function does not consume any bytes from the DescriptorChain. Instead callers should use the consume method to advance the DescriptorChain. Multiple calls to get with no intervening calls to consume will return the same data.

Source

fn get_remaining_with_count<'mem>( &self, mem: &'mem GuestMemory, count: usize, ) -> SmallVec<[VolatileSlice<'mem>; 16]>

Like ‘get_remaining_regions_with_count’ except convert the offsets to volatile slices in the ‘GuestMemory’ given by ‘mem’.

Source

fn consume(&mut self, count: usize)

Consumes count bytes from the DescriptorChain. If count is larger than self.available_bytes() then all remaining bytes in the DescriptorChain will be consumed.

Source

fn split_at(&mut self, offset: usize) -> DescriptorChainRegions

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

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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V