mlua 0.7.0

High level bindings to Lua 5.4/5.3/5.2/5.1 (including LuaJIT) with async/await features and support of writing native Lua modules in Rust.
Documentation
error[E0495]: cannot infer an appropriate lifetime due to conflicting requirements
  --> $DIR/async_nonstatic_userdata.rs:11:72
   |
11 |               methods.add_async_method("print", |_, data, ()| async move {
   |  ________________________________________________________________________^
12 | |                 println!("{}", data.0);
13 | |                 Ok(())
14 | |             });
   | |_____________^
   |
note: first, the lifetime cannot outlive the lifetime `'a` as defined on the impl at 9:10...
  --> $DIR/async_nonstatic_userdata.rs:9:10
   |
9  |     impl<'a> UserData for MyUserData<'a> {
   |          ^^
note: ...so that the types are compatible
  --> $DIR/async_nonstatic_userdata.rs:11:72
   |
11 |               methods.add_async_method("print", |_, data, ()| async move {
   |  ________________________________________________________________________^
12 | |                 println!("{}", data.0);
13 | |                 Ok(())
14 | |             });
   | |_____________^
   = note: expected `(MyUserData<'_>,)`
              found `(MyUserData<'a>,)`
note: but, the lifetime must be valid for the lifetime `'lua` as defined on the method body at 10:24...
  --> $DIR/async_nonstatic_userdata.rs:10:24
   |
10 |         fn add_methods<'lua, M: UserDataMethods<'lua, Self>>(methods: &mut M) {
   |                        ^^^^
note: ...so that the type `impl Future` will meet its required lifetime bounds
  --> $DIR/async_nonstatic_userdata.rs:11:21
   |
11 |             methods.add_async_method("print", |_, data, ()| async move {
   |                     ^^^^^^^^^^^^^^^^