pub struct MemoryImage { /* private fields */ }
Expand description
A memory image
A full memory image of a zkVM guest. Includes functionality for accessing memory and associated digests, and for initializing the memory state for a Program.
Implementations§
Source§impl MemoryImage
impl MemoryImage
Sourcepub fn new_user(program: Program) -> Self
pub fn new_user(program: Program) -> Self
Creates the initial memory state for a user-mode program
.
Sourcepub fn new_kernel(program: Program) -> Self
pub fn new_kernel(program: Program) -> Self
Creates the initial memory state for a kernel-mode program
.
Sourcepub fn with_kernel(user: Program, kernel: Program) -> Self
pub fn with_kernel(user: Program, kernel: Program) -> Self
Sourcepub fn get_page_indexes(&self) -> BTreeSet<u32>
pub fn get_page_indexes(&self) -> BTreeSet<u32>
Returns a set of the page indexes that are loaded.
Sourcepub fn digests(&self) -> impl Iterator<Item = (&u32, &Digest)> + '_
pub fn digests(&self) -> impl Iterator<Item = (&u32, &Digest)> + '_
Sorted iterator over page digests (page_idx -> Digest)
Sourcepub fn get_page(&mut self, page_idx: u32) -> Result<Page>
pub fn get_page(&mut self, page_idx: u32) -> Result<Page>
Return the page data, fails if unavailable
Sourcepub fn set_page_with_digest(
&mut self,
page_idx: u32,
page: Page,
digest: Digest,
)
pub fn set_page_with_digest( &mut self, page_idx: u32, page: Page, digest: Digest, )
Set the data for a page and with the given digest
Sourcepub fn get_digest(&mut self, digest_idx: u32) -> Result<&Digest>
pub fn get_digest(&mut self, digest_idx: u32) -> Result<&Digest>
Get a digest, fails if unavailable
Sourcepub fn set_digest(&mut self, digest_idx: u32, digest: Digest)
pub fn set_digest(&mut self, digest_idx: u32, digest: Digest)
Set a digest
Sourcepub fn update_digests(&mut self)
pub fn update_digests(&mut self)
After making changes to the image, call this to update all the digests that need to be updated.
Sourcepub fn into_pages(self) -> BTreeMap<u32, Page>
pub fn into_pages(self) -> BTreeMap<u32, Page>
Discard the hashes and turn the MemoryImage into just its pages
Trait Implementations§
Source§impl Clone for MemoryImage
impl Clone for MemoryImage
Source§fn clone(&self) -> MemoryImage
fn clone(&self) -> MemoryImage
Returns a duplicate 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 Debug for MemoryImage
impl Debug for MemoryImage
Source§impl Default for MemoryImage
impl Default for MemoryImage
Source§impl<'de> Deserialize<'de> for MemoryImage
impl<'de> Deserialize<'de> for MemoryImage
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 Freeze for MemoryImage
impl RefUnwindSafe for MemoryImage
impl Send for MemoryImage
impl Sync for MemoryImage
impl Unpin for MemoryImage
impl UnwindSafe for MemoryImage
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