near_vm_logic/mocks/
mock_memory.rs

1use crate::MemoryLike;
2
3#[derive(Default)]
4pub struct MockedMemory {}
5
6impl MemoryLike for MockedMemory {
7    fn fits_memory(&self, _offset: u64, _len: u64) -> bool {
8        true
9    }
10
11    fn read_memory(&self, offset: u64, buffer: &mut [u8]) {
12        let src = unsafe { std::slice::from_raw_parts(offset as *const u8, buffer.len() as usize) };
13        buffer.copy_from_slice(src);
14    }
15
16    fn read_memory_u8(&self, offset: u64) -> u8 {
17        let offset = offset as *const u8;
18        unsafe { *offset }
19    }
20
21    fn write_memory(&mut self, offset: u64, buffer: &[u8]) {
22        let dest =
23            unsafe { std::slice::from_raw_parts_mut(offset as *mut u8, buffer.len() as usize) };
24        dest.copy_from_slice(buffer);
25    }
26}