24 个版本 (13 个稳定版)
2.2.0 | 2024 年 7 月 4 日 |
---|---|
2.0.0 | 2024 年 2 月 2 日 |
1.17.0 |
|
1.6.0 | 2023 年 9 月 9 日 |
0.3.0 | 2020 年 11 月 23 日 |
969 在 嵌入式开发 中
95,003 每月下载量
用于 157 个 Crates (2 个直接使用)
260KB
6.5K SLoC
插件的过程宏
此包包含用于代码生成的过程宏,支持 Rhai 的插件系统。
此包由 Rhai 包 自动引用。通常不应直接使用。
lib.rs
:
此包包含用于使创建 Rhai 插件模块更加容易的过程宏。
将整个 Rust 模块导出到 Rhai Module
use rhai::{EvalAltResult, FLOAT};
use rhai::plugin::*;
use rhai::module_resolvers::*;
#[export_module]
mod advanced_math {
pub const MYSTIC_NUMBER: FLOAT = 42.0;
pub fn euclidean_distance(x1: FLOAT, y1: FLOAT, x2: FLOAT, y2: FLOAT) -> FLOAT {
((y2 - y1).abs().powf(2.0) + (x2 -x1).abs().powf(2.0)).sqrt()
}
}
let mut engine = Engine::new();
let m = exported_module!(advanced_math);
let mut r = StaticModuleResolver::new();
r.insert("Math::Advanced", m);
engine.set_module_resolver(r);
assert_eq!(engine.eval::<FLOAT>(
r#"
import "Math::Advanced" as math;
math::euclidean_distance(0.0, 1.0, 0.0, math::MYSTIC_NUMBER)
"#)?, 41.0);
依赖项
~250–700KB
~17K SLoC