MappedRange

Struct MappedRange 

Source
pub struct MappedRange<'a, B: Backend> { /* private fields */ }
Expand description

Represents range of the memory mapped to the host. Provides methods for safer host access to the memory.

Implementations§

Source§

impl<'a, B: Backend> MappedRange<'a, B>

Source

pub fn ptr(&self) -> NonNull<u8>

Get pointer to beginning of memory region. i.e. to range().start offset from memory origin.

Source

pub fn range(&self) -> Range<Size>

Get mapped range.

Source

pub fn is_coherent(&self) -> bool

Return true if the mapped memory is coherent.

Source

pub unsafe fn read<'b, T>( &'b mut self, device: &B::Device, segment: Segment, ) -> Result<&'b [T], MapError>
where T: Copy, 'a: 'b,

Fetch readable slice of sub-range to be read. Invalidating range if memory is not coherent.

§Safety
  • Caller must ensure that device won’t write to the memory region until the borrowing ends.
  • T Must be plain-old-data type compatible with data in mapped region.
Source

pub unsafe fn write<'b, T>( &'b mut self, device: &'b B::Device, segment: Segment, ) -> Result<Writer<'a, 'b, T, B>, MapError>
where T: Copy + 'b, 'a: 'b,

Fetch writer to the sub-region. This writer will flush data on drop if written at least once.

§Safety
  • Caller must ensure that device won’t write to or read from the memory region.

Trait Implementations§

Source§

impl<'a, B: Debug + Backend> Debug for MappedRange<'a, B>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a, B> Freeze for MappedRange<'a, B>

§

impl<'a, B> RefUnwindSafe for MappedRange<'a, B>
where <B as Backend>::Memory: RefUnwindSafe,

§

impl<'a, B> !Send for MappedRange<'a, B>

§

impl<'a, B> !Sync for MappedRange<'a, B>

§

impl<'a, B> Unpin for MappedRange<'a, B>

§

impl<'a, B> UnwindSafe for MappedRange<'a, B>
where <B as Backend>::Memory: RefUnwindSafe,

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.