1#[derive(Debug)]
2pub(crate) struct Heap {
3 size: u64,
4 used: u64,
5 allocated: u128,
6 deallocated: u128,
7}
8
9impl Heap {
10 pub(crate) fn new(size: u64) -> Self {
11 Heap {
12 size,
13 used: 0,
14 allocated: 0,
15 deallocated: 0,
16 }
17 }
18
19 pub(crate) fn size(&mut self) -> u64 {
20 self.size
21 }
22
23 pub(crate) fn alloc(&mut self, size: u64) {
24 self.used += size;
25 self.allocated += u128::from(size);
26 }
27
28 pub(crate) fn dealloc(&mut self, size: u64) {
29 self.used -= size;
30 self.deallocated += u128::from(size);
31 }
32}