(&self, base: u64, offset: u64)
| 335 | |
| 336 | #[inline(always)] |
| 337 | fn read_128(&self, base: u64, offset: u64) -> core::result::Result<[u8; 16], crate::Trap> { |
| 338 | let addr = checked_effective_addr::<16>(self.len, base, offset)?; |
| 339 | let chunk_idx = addr >> self.chunk_shift; |
| 340 | let chunk_offset = addr & self.chunk_mask; |
| 341 | if chunk_offset + 16 <= self.chunk_size { |
| 342 | return Ok(match self.chunk_slice(chunk_idx) { |
| 343 | Some(chunk) => chunk[chunk_offset..chunk_offset + 16].try_into().unwrap_or_else(|_| unreachable!()), |
| 344 | None => [0; 16], |
| 345 | }); |
| 346 | } |
| 347 | |
| 348 | let mut bytes = [0; 16]; |
| 349 | self.read_exact(addr, &mut bytes).unwrap(); |
| 350 | Ok(bytes) |
| 351 | } |
| 352 | |
| 353 | #[inline(always)] |
| 354 | fn write_8(&mut self, base: u64, offset: u64, byte: u8) -> core::result::Result<(), crate::Trap> { |
nothing calls this directly
no test coverage detected