pub struct SparseData<'a> { /* private fields */ }
Expand description
A sparse representation of a Lucet module’s initial heap.
The lifetime parameter exists to support zero-copy deserialization for the &[u8]
slices
representing non-zero pages. For a variant with owned Vec<u8>
pages, see
OwnedSparseData
.
Implementations§
Source§impl<'a> SparseData<'a>
impl<'a> SparseData<'a>
Sourcepub fn new(pages: Vec<Option<&'a [u8]>>) -> Result<Self, Error>
pub fn new(pages: Vec<Option<&'a [u8]>>) -> Result<Self, Error>
Create a new SparseData
from its constituent pages.
Entries in the pages
argument which are Some
must contain a slice of exactly the host
page size (4096), otherwise this function returns Error::IncorrectPageSize
. Entries which
are None
are interpreted as empty pages, which will be zeroed by the runtime.
pub fn pages(&self) -> &[Option<&'a [u8]>]
pub fn get_page(&self, offset: usize) -> &Option<&'a [u8]>
pub fn len(&self) -> usize
Trait Implementations§
Source§impl<'a> Clone for SparseData<'a>
impl<'a> Clone for SparseData<'a>
Source§fn clone(&self) -> SparseData<'a>
fn clone(&self) -> SparseData<'a>
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl<'a> Debug for SparseData<'a>
impl<'a> Debug for SparseData<'a>
Source§impl<'de: 'a, 'a> Deserialize<'de> for SparseData<'a>
impl<'de: 'a, 'a> Deserialize<'de> for SparseData<'a>
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl<'a> Freeze for SparseData<'a>
impl<'a> RefUnwindSafe for SparseData<'a>
impl<'a> Send for SparseData<'a>
impl<'a> Sync for SparseData<'a>
impl<'a> Unpin for SparseData<'a>
impl<'a> UnwindSafe for SparseData<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more