如何从函数内部更改hlua :: Lua上下文变量?

时间:2017-07-11 10:52:36

标签: rust hlua

这是一个小例子:

extern crate hlua;
use hlua::*;
use std::rc::Rc;
use std::cell::{Cell, RefCell};

fn main() {
    let lua = Rc::new(RefCell::new(Lua::new()));
    lua.borrow_mut().set("x", 42);
    {
        let lua2 = lua.clone();
        lua.borrow_mut().set("foo", function0(move ||{
            lua2.borrow_mut().set("x", 1); // XXX thread 'main' panicked at 'already borrowed: BorrowMutError'
        }));
    }
    let _ = lua.borrow_mut().execute::<()>("foo()");
    println!("{}", lua.borrow_mut().get::<i32, _>("x").unwrap());
}

此代码在运行时在标记为XXX的行处发生混乱。我得到lua是在我拨打foo()时借用的,但我没有看到其他办法。如何在导出的函数中使用lua

0 个答案:

没有答案