luaur-compiler 0.1.3

Luau source-to-bytecode compiler (Rust).
Documentation
use crate::enums::global::Global;
use crate::records::value_visitor::ValueVisitor;
use crate::records::variable::Variable;
use core::mem;
use core::ptr;
use luaur_ast::records::ast_local::AstLocal;
use luaur_ast::records::ast_name::AstName;
use luaur_common::records::dense_hash_map::DenseHashMap;

impl ValueVisitor {
    pub fn value_visitor(
        globals: &mut DenseHashMap<AstName, Global>,
        variables: &mut DenseHashMap<*mut AstLocal, Variable>,
    ) -> Self {
        let globals_owned = mem::replace(globals, DenseHashMap::new(AstName::new()));
        let variables_owned = mem::replace(variables, DenseHashMap::new(ptr::null_mut()));
        ValueVisitor {
            globals: globals_owned,
            variables: variables_owned,
        }
    }
}