33 lines
656 B
Rust
33 lines
656 B
Rust
#[derive(Debug)]
|
|
pub(crate) struct Heap {
|
|
size: u64,
|
|
used: u64,
|
|
allocated: u128,
|
|
deallocated: u128,
|
|
}
|
|
|
|
impl Heap {
|
|
pub(crate) fn new(size: u64) -> Self {
|
|
Heap {
|
|
size,
|
|
used: 0,
|
|
allocated: 0,
|
|
deallocated: 0,
|
|
}
|
|
}
|
|
|
|
pub(crate) fn size(&mut self) -> u64 {
|
|
self.size
|
|
}
|
|
|
|
pub(crate) fn alloc(&mut self, size: u64) {
|
|
self.used += size;
|
|
self.allocated += u128::from(size);
|
|
}
|
|
|
|
pub(crate) fn dealloc(&mut self, size: u64) {
|
|
self.used -= size;
|
|
self.deallocated += u128::from(size);
|
|
}
|
|
}
|