#[derive(Debug)] pub struct Heap { pub heaps: Vec> } impl Heap { pub fn new() -> Heap { Heap { heaps: Vec::new() } } pub fn len(&self) -> usize { self.heaps.len() } pub fn get(&mut self, i: usize) -> &mut Vec { &mut self.heaps[i] } pub fn alloc(&mut self, size: usize) -> usize { self.heaps.push(vec![0; size]); self.len() - 1 } }