Crates.io | rlua-searcher |
lib.rs | rlua-searcher |
version | 0.1.0 |
source | src |
created_at | 2023-08-02 10:48:46.787738 |
updated_at | 2023-08-02 10:48:46.787738 |
description | Require Lua modules by name |
homepage | https://git.front.kjuulh.io/kjuulh/rlua-searcher |
repository | https://git.front.kjuulh.io/kjuulh/rlua-searcher |
max_upload_size | |
id | 932607 |
size | 41,685 |
require
Lua modules by name
(This is a fork of https://git.sr.ht/~ioiojo/rlua-searcher, I don't maintain this code, I just need to available on crates.io for other dependent packages.)
Encode a Lua module as a HashMap
of Lua strings indexed by module
name. In an rlua::Context
, pass the HashMap
to add_searcher()
,
and require
the module.
use rlua::Lua;
use rlua_searcher::{AddSearcher, Result};
use std::collections::HashMap;
fn main() {
let lume = Cow::from(read_lume_to_string());
let name = Cow::from("lume");
let mut map = HashMap::new();
map.insert(name, lume);
let lua = Lua::new();
let hello = lua
.context::<_, Result<String>>(|lua_ctx| {
lua_ctx.add_searcher(map)?;
Ok(lua_ctx.load(r#"return require("lume")"#).eval()?)
})
.unwrap();
// prints "hello lume"
println!("{}", hello);
}
fn read_lume_to_string() -> String {
r#"return "hello lume""#.to_string()
}
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.