diff --git a/benchmarks/wasm/Cargo.toml b/benchmarks/wasm/Cargo.toml index f109379..1577e78 100644 --- a/benchmarks/wasm/Cargo.toml +++ b/benchmarks/wasm/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "wasm" version = "0.1.0" -edition = "2021" +edition = "2024" [lib] crate-type = ["cdylib"] diff --git a/benchmarks/wasm/src/lib.rs b/benchmarks/wasm/src/lib.rs index 61fe43f..b1cb9f4 100644 --- a/benchmarks/wasm/src/lib.rs +++ b/benchmarks/wasm/src/lib.rs @@ -1,9 +1,9 @@ -#![warn(clippy::missing_safety_doc)] +#![allow(clippy::missing_safety_doc)] use mlua::Lua; -use std::ffi::{c_char, c_int, CStr}; +use std::ffi::{CStr, c_char, c_int}; -#[no_mangle] +#[unsafe(no_mangle)] pub unsafe extern "C" fn execute(program: *const c_char, argc: c_int, argv: *const *const c_char) { let lua = Lua::new(); let lua_globals = lua.globals(); @@ -13,12 +13,12 @@ pub unsafe extern "C" fn execute(program: *const c_char, argc: c_int, argv: *con arg.set(-1, "mlua").unwrap(); arg.set(0, "execute").unwrap(); for i in 0..argc { - let argv_arg = CStr::from_ptr(*argv.offset(i as isize)); + let argv_arg = unsafe { CStr::from_ptr(*argv.offset(i as isize)) }; arg.push(argv_arg.to_str().unwrap()).unwrap(); } lua_globals.set("arg", arg).unwrap(); - let exec = CStr::from_ptr(program).to_str().unwrap(); + let exec = unsafe { CStr::from_ptr(program).to_str().unwrap() }; if let Err(err) = lua.load(exec).exec() { eprintln!("{}", err) } diff --git a/example-binary/Cargo.toml b/example-binary/Cargo.toml index 72e7add..32eaed4 100644 --- a/example-binary/Cargo.toml +++ b/example-binary/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "example-binary" version = "0.1.0" -edition = "2021" +edition = "2024" [dependencies] mlua = { version = ">=0.9.3", features = ["lua51", "vendored"] } diff --git a/example-binary/src/main.rs b/example-binary/src/main.rs index 34f071c..d7896b9 100644 --- a/example-binary/src/main.rs +++ b/example-binary/src/main.rs @@ -1,5 +1,7 @@ fn main() { let lua = mlua::Lua::new(); - lua.load(r#"print("Hello from WebAssembly Lua!")"#).exec().unwrap(); + lua.load(r#"print("Hello from WebAssembly Lua!")"#) + .exec() + .unwrap(); } diff --git a/example-library/Cargo.toml b/example-library/Cargo.toml index fa07718..984f090 100644 --- a/example-library/Cargo.toml +++ b/example-library/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "example-library" version = "0.1.0" -edition = "2021" +edition = "2024" [lib] crate-type = ["cdylib"] diff --git a/example-library/build.rs b/example-library/build.rs index 72cc1cb..cf25fa4 100644 --- a/example-library/build.rs +++ b/example-library/build.rs @@ -2,7 +2,7 @@ use std::env; use std::path::PathBuf; fn main() { - let book_output_path = env::var("BOOK_OUTPUT_PATH").map_or(None, Some); + let book_output_path = env::var("BOOK_OUTPUT_PATH").ok(); let out_dir = env::var("OUT_DIR").unwrap(); let pkg_name = env::var("CARGO_PKG_NAME").unwrap(); @@ -19,5 +19,12 @@ fn main() { println!("cargo:rustc-link-arg=-sEXPORT_ES6=1"); println!("cargo:rustc-link-arg=-sERROR_ON_UNDEFINED_SYMBOLS=0"); println!("cargo:rustc-link-arg=--no-entry"); - println!("cargo:rustc-link-arg=-o{}.js", book_output_path.map(PathBuf::from).unwrap_or(target_path).join(pkg_name).to_string_lossy()); + println!( + "cargo:rustc-link-arg=-o{}.js", + book_output_path + .map(PathBuf::from) + .unwrap_or(target_path) + .join(pkg_name) + .to_string_lossy() + ); } diff --git a/example-library/src/lib.rs b/example-library/src/lib.rs index 245f916..df21057 100644 --- a/example-library/src/lib.rs +++ b/example-library/src/lib.rs @@ -1,18 +1,20 @@ -use std::ffi::{c_char, CStr}; -use mlua::Lua; +#![allow(clippy::missing_safety_doc)] -#[no_mangle] -pub extern "C" fn lua_new() -> *mut Lua { +use mlua::Lua; +use std::ffi::{CStr, c_char}; + +#[unsafe(no_mangle)] +pub unsafe extern "C" fn lua_new() -> *mut Lua { let lua = Lua::new(); Box::into_raw(Box::new(lua)) } -#[no_mangle] +#[unsafe(no_mangle)] pub unsafe extern "C" fn lua_execute(lua: *mut Lua, to_execute: *const c_char) { - let lua: &mut Lua = &mut *lua; - let to_execute = CStr::from_ptr(to_execute); + let lua: &mut Lua = unsafe { &mut *lua }; + let to_execute = unsafe { CStr::from_ptr(to_execute) }; - if let Err(err) = lua.load(&to_execute.to_string_lossy().to_string()).exec() { + if let Err(err) = lua.load(to_execute.to_string_lossy().to_string()).exec() { eprintln!("{}", err) } } diff --git a/lua-playground/Cargo.toml b/lua-playground/Cargo.toml index 2450fe2..2e4ce05 100644 --- a/lua-playground/Cargo.toml +++ b/lua-playground/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "lua-playground" version = "0.1.0" -edition = "2021" +edition = "2024" [lib] crate-type = ["cdylib"] diff --git a/lua-playground/build.rs b/lua-playground/build.rs index 72cc1cb..cf25fa4 100644 --- a/lua-playground/build.rs +++ b/lua-playground/build.rs @@ -2,7 +2,7 @@ use std::env; use std::path::PathBuf; fn main() { - let book_output_path = env::var("BOOK_OUTPUT_PATH").map_or(None, Some); + let book_output_path = env::var("BOOK_OUTPUT_PATH").ok(); let out_dir = env::var("OUT_DIR").unwrap(); let pkg_name = env::var("CARGO_PKG_NAME").unwrap(); @@ -19,5 +19,12 @@ fn main() { println!("cargo:rustc-link-arg=-sEXPORT_ES6=1"); println!("cargo:rustc-link-arg=-sERROR_ON_UNDEFINED_SYMBOLS=0"); println!("cargo:rustc-link-arg=--no-entry"); - println!("cargo:rustc-link-arg=-o{}.js", book_output_path.map(PathBuf::from).unwrap_or(target_path).join(pkg_name).to_string_lossy()); + println!( + "cargo:rustc-link-arg=-o{}.js", + book_output_path + .map(PathBuf::from) + .unwrap_or(target_path) + .join(pkg_name) + .to_string_lossy() + ); } diff --git a/lua-playground/src/lib.rs b/lua-playground/src/lib.rs index 245f916..df21057 100644 --- a/lua-playground/src/lib.rs +++ b/lua-playground/src/lib.rs @@ -1,18 +1,20 @@ -use std::ffi::{c_char, CStr}; -use mlua::Lua; +#![allow(clippy::missing_safety_doc)] -#[no_mangle] -pub extern "C" fn lua_new() -> *mut Lua { +use mlua::Lua; +use std::ffi::{CStr, c_char}; + +#[unsafe(no_mangle)] +pub unsafe extern "C" fn lua_new() -> *mut Lua { let lua = Lua::new(); Box::into_raw(Box::new(lua)) } -#[no_mangle] +#[unsafe(no_mangle)] pub unsafe extern "C" fn lua_execute(lua: *mut Lua, to_execute: *const c_char) { - let lua: &mut Lua = &mut *lua; - let to_execute = CStr::from_ptr(to_execute); + let lua: &mut Lua = unsafe { &mut *lua }; + let to_execute = unsafe { CStr::from_ptr(to_execute) }; - if let Err(err) = lua.load(&to_execute.to_string_lossy().to_string()).exec() { + if let Err(err) = lua.load(to_execute.to_string_lossy().to_string()).exec() { eprintln!("{}", err) } }