use luaur_ast::records::ast_stat_block::AstStatBlock;
use luaur_ast::records::ast_visitor::AstVisitor;
use std::collections::VecDeque;
#[repr(C)]
#[derive(Debug)]
pub struct Enqueuer {
pub queue: *mut VecDeque<*mut AstStatBlock>,
}
impl Enqueuer {
pub fn new(queue: *mut VecDeque<*mut AstStatBlock>) -> Self {
unsafe {
debug_assert!(!queue.is_null());
}
Enqueuer { queue }
}
}
impl AstVisitor for Enqueuer {
fn visit_stat_block(&mut self, node: *mut core::ffi::c_void) -> bool {
let block = unsafe { node as *mut AstStatBlock };
unsafe {
(*self.queue).push_back(block);
}
false
}
}