use std::rc::Rc;
use std::cell::RefCell;
pub struct Canary {
index: usize,
queue: Rc<RefCell<Vec<usize>>>,
}
impl Canary {
pub fn new(index: usize, queue: Rc<RefCell<Vec<usize>>>) -> Self {
Canary { index, queue }
}
}
impl Drop for Canary {
fn drop(&mut self) {
self.queue.borrow_mut().push(self.index);
}
}