2021-02-04 01:09:05 +01:00
# rlua-searcher
`require` Lua modules by name
2023-08-02 12:47:36 +02:00
(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.)
2021-02-04 01:09:05 +01:00
## 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
2021-02-04 02:16:07 +01:00
use rlua::Lua;
use rlua_searcher::{AddSearcher, Result};
use std::collections::HashMap;
2021-02-04 01:09:05 +01:00
fn main() {
2021-06-14 23:55:12 +02:00
let lume = Cow::from(read_lume_to_string());
let name = Cow::from("lume");
2021-02-04 02:16:07 +01:00
let mut map = HashMap::new();
2021-02-04 01:09:05 +01:00
map.insert(name, lume);
2021-02-04 02:16:07 +01:00
let lua = Lua::new();
2021-02-04 01:09:05 +01:00
2021-02-04 02:16:07 +01:00
let hello = lua
.context::< _ , Result < String > >(|lua_ctx| {
lua_ctx.add_searcher(map)?;
Ok(lua_ctx.load(r#"return require("lume")"#).eval()?)
})
.unwrap();
2021-02-04 01:09:05 +01:00
// prints "hello lume"
println!("{}", hello);
}
fn read_lume_to_string() -> String {
r#"return "hello lume""#.to_string()
}
```
## License
2021-03-22 01:57:11 +01:00
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.