1use crate::il;
4use crate::memory;
5use crate::Error;
6
7mod driver;
8mod eval;
9mod state;
10mod successor;
11
12pub use self::driver::*;
13pub use self::eval::eval;
14pub use self::state::*;
15pub use self::successor::*;
16
17pub type Memory = memory::paged::Memory<il::Constant>;
19
20use crate::memory::MemoryPermissions;
21use crate::translator;
22
23impl translator::TranslationMemory for Memory {
24 fn get_u8(&self, address: u64) -> Option<u8> {
25 self.load(address, 8)
26 .unwrap()
27 .map(|constant| constant.value_u64().unwrap() as u8)
28 }
29
30 fn permissions(&self, address: u64) -> Option<MemoryPermissions> {
31 self.permissions(address)
32 }
33}