Skip to main content

luaur_ast/methods/
ast_expr_table_visit.rs

1use crate::records::ast_expr_table::AstExprTable;
2use crate::records::ast_visitor::AstVisitor;
3use crate::visit::{ast_expr_visit, AstVisitable};
4
5impl crate::visit::AstVisitable for AstExprTable {
6    fn visit(&self, visitor: &mut dyn AstVisitor) {
7        if visitor.visit_expr_table(self as *const Self as *mut core::ffi::c_void) {
8            for item in self.items.iter() {
9                if !item.key.is_null() {
10                    unsafe {
11                        ast_expr_visit(item.key, visitor);
12                    }
13                }
14
15                unsafe {
16                    ast_expr_visit(item.value, visitor);
17                }
18            }
19        }
20    }
21}
22
23#[allow(non_snake_case)]
24pub fn ast_expr_table_visit(this: *const AstExprTable, visitor: &mut dyn AstVisitor) {
25    unsafe {
26        (*this).visit(visitor);
27    }
28}