#[derive(Debug, Default)]
pub struct SafetyContext {
unsafe_stack: Vec<bool>,
}
impl SafetyContext {
pub fn new() -> Self {
Self {
unsafe_stack: vec![false], }
}
pub fn enter_unsafe(&mut self) {
self.unsafe_stack.push(true);
}
pub fn exit_unsafe(&mut self) {
self.unsafe_stack.pop();
}
pub fn is_unsafe(&self) -> bool {
self.unsafe_stack.last().copied().unwrap_or(false)
}
}