vtl_rs/
memory.rs

1pub struct Memory {
2    pub data: Vec<i64>, // Memory array, switchable in width based on config (e.g. 8, 16, or 64-bit)
3}
4
5impl Memory {
6    pub fn new(size: usize) -> Self {
7        Memory {
8            data: vec![0; size], // Initialize memory
9        }
10    }
11
12    pub fn read(&self, address: usize) -> i64 {
13        self.data[address]
14    }
15
16    pub fn write(&mut self, address: usize, value: i64) {
17        self.data[address] = value;
18    }
19}