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

Method read_16

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

Source from the content-addressed store, hash-verified

284
285 #[inline(always)]
286 fn read_16(&self, base: u64, offset: u64) -> core::result::Result<[u8; 2], crate::Trap> {
287 let addr = checked_effective_addr::<2>(self.len, base, offset)?;
288 let chunk_idx = addr >> self.chunk_shift;
289 let chunk_offset = addr & self.chunk_mask;
290 if chunk_offset + 2 <= self.chunk_size {
291 return Ok(match self.chunk_slice(chunk_idx) {
292 Some(chunk) => chunk[chunk_offset..chunk_offset + 2].try_into().unwrap_or_else(|_| unreachable!()),
293 None => [0; 2],
294 });
295 }
296
297 let mut bytes = [0; 2];
298 self.read_exact(addr, &mut bytes).unwrap();
299 Ok(bytes)
300 }
301
302 #[inline(always)]
303 fn read_32(&self, base: u64, offset: u64) -> core::result::Result<[u8; 4], crate::Trap> {

Callers

nothing calls this directly

Calls 2

chunk_sliceMethod · 0.80
read_exactMethod · 0.45

Tested by

no test coverage detected