luaur_analysis/records/
visitor.rs1use luaur_ast::records::ast_stat_return::AstStatReturn;
2use luaur_ast::records::ast_visitor::AstVisitor;
3
4#[derive(Debug, Clone)]
5pub struct Visitor {
6 pub(crate) result: *mut AstStatReturn,
7}
8
9impl Visitor {
10 pub fn new() -> Self {
11 Self {
12 result: core::ptr::null_mut(),
13 }
14 }
15}
16
17impl Default for Visitor {
18 fn default() -> Self {
19 Self::new()
20 }
21}
22
23impl AstVisitor for Visitor {
24 fn visit_expr(&mut self, _node: *mut core::ffi::c_void) -> bool {
25 false
26 }
27
28 fn visit_stat_return(&mut self, node: *mut core::ffi::c_void) -> bool {
29 let node = node as *mut AstStatReturn;
30 unsafe {
31 if self.result.is_null() && (*node).list.len() > 0 {
32 self.result = node;
33 }
34 }
35 false
36 }
37
38 fn visit_node(&mut self, _node: *mut core::ffi::c_void) -> bool {
39 false
40 }
41}