MCPcopy Create free account
hub / github.com/explodingcamera/tinywasm / read_32

Method read_32

crates/tinywasm/src/store/memory/paged.rs:303–317  ·  view source on GitHub ↗
(&self, base: u64, offset: u64)

Source from the content-addressed store, hash-verified

301
302 #[inline(always)]
303 fn read_32(&self, base: u64, offset: u64) -> core::result::Result<[u8; 4], crate::Trap> {
304 let addr = checked_effective_addr::<4>(self.len, base, offset)?;
305 let chunk_idx = addr >> self.chunk_shift;
306 let chunk_offset = addr & self.chunk_mask;
307 if chunk_offset + 4 <= self.chunk_size {
308 return Ok(match self.chunk_slice(chunk_idx) {
309 Some(chunk) => chunk[chunk_offset..chunk_offset + 4].try_into().unwrap_or_else(|_| unreachable!()),
310 None => [0; 4],
311 });
312 }
313
314 let mut bytes = [0; 4];
315 self.read_exact(addr, &mut bytes).unwrap();
316 Ok(bytes)
317 }
318
319 #[inline(always)]
320 fn read_64(&self, base: u64, offset: u64) -> core::result::Result<[u8; 8], crate::Trap> {

Callers

nothing calls this directly

Calls 2

chunk_sliceMethod · 0.80
read_exactMethod · 0.45

Tested by

no test coverage detected