use super::*;
#[derive(Clone)]
pub struct Mem {
bytes: Vec<Byte>,
size: usize
}
impl Mem {
pub fn new(size: usize) -> Mem {
Mem {
bytes: vec![0x0; size],
size
}
}
pub fn from(bytes: Vec<Byte>) -> Mem {
Mem {
bytes: bytes.clone(),
size: bytes.len()
}
}
pub fn get(&self, index: usize) -> Option<&Byte> {
if index < self.len() {
Some(match self.bytes.get(index) {
Some(some) => some,
None => return None
})
} else {
None
}
}
pub fn get_mut(&mut self, index: usize) -> Option<&mut Byte> {
if index < self.len() {
Some(match self.bytes.get_mut(index) {
Some(some) => some,
None => return None
})
} else {
None
}
}
pub fn len(&self) -> usize {
self.bytes.len()
}
pub fn clone_into_vec(&self) -> Vec<Byte> {
self.bytes.clone()
}
}