59 lines
1.5 KiB
Markdown
59 lines
1.5 KiB
Markdown
# rlua-searcher
|
|
|
|
`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.)
|
|
|
|
## Description
|
|
|
|
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.
|
|
|
|
## Synopsis
|
|
|
|
```rust
|
|
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()
|
|
}
|
|
```
|
|
|
|
## License
|
|
|
|
Licensed under either of
|
|
|
|
- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or https://www.apache.org/licenses/LICENSE-2.0)
|
|
- MIT license ([LICENSE-MIT](LICENSE-MIT) or https://opensource.org/licenses/MIT)
|
|
|
|
at your option.
|
|
|
|
## Contribution
|
|
|
|
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.
|