Reads exactly 1 byte at the effective address `base + offset`.
(&self, base: u64, offset: u64)
| 158 | |
| 159 | /// Reads exactly 1 byte at the effective address `base + offset`. |
| 160 | fn read_8(&self, base: u64, offset: u64) -> core::result::Result<u8, crate::Trap> { |
| 161 | let addr = checked_effective_addr::<1>(self.len(), base, offset)?; |
| 162 | let mut bytes = [0; 1]; |
| 163 | self.read_exact(addr, &mut bytes).ok_or_else(|| { |
| 164 | cold_path(); |
| 165 | memory_oob(addr, 1, self.len()) |
| 166 | })?; |
| 167 | Ok(bytes[0]) |
| 168 | } |
| 169 | |
| 170 | /// Reads exactly 2 bytes at the effective address `base + offset`. |
| 171 | fn read_16(&self, base: u64, offset: u64) -> core::result::Result<[u8; 2], crate::Trap> { |