#evaluate #compile-time #expression #sandbox #handy #build

reflexive

在编译时评估任何Rust表达式的便捷方式

2个不稳定版本

0.4.1 2023年6月18日
0.1.0 2023年5月25日

#1819过程宏

Download history 10/week @ 2024-03-11 5/week @ 2024-03-18 27/week @ 2024-04-01 21/week @ 2024-04-08 20/week @ 2024-04-15 19/week @ 2024-04-22 26/week @ 2024-04-29 29/week @ 2024-05-06 19/week @ 2024-05-13 40/week @ 2024-05-20 23/week @ 2024-05-27 32/week @ 2024-06-03 19/week @ 2024-06-10 19/week @ 2024-06-17 37/week @ 2024-06-24

110 每月下载量
用于 2 个crates(通过 hs-bindgen-attribute

MIT/Apache

9KB
79

reflexive

一个神奇的 函数,可以(如果用在宏中,此时使用的是 TokenStream 输入)在编译时评估任何Rust表达式!

示例

use reflexive::Sandbox;
use quote::quote;

let test = Sandbox::new("calc").unwrap();
let x: u32 = test.eval(quote! { 2 + 2 }).unwrap();
assert!(x == 4);

这个库确实不是最能提高你的crate构建时间的,但它仍然考虑到了缓存沙盒编译的意愿。

鸣谢

⚠️ 这仍然是一个正在进行的实验,尚未准备好用于生产。

该项目是作为IOG承包商的工作分配的一部分。

许可证

根据您的选择,在Apache License,Version 2.0或MIT许可证下许可。 Apache许可证,版本2.0或MIT许可证

除非您明确说明,否则您有意提交的任何贡献,根据Apache-2.0许可证定义,均应如上所述双重许可,而不附加任何其他条款或条件。

依赖关系

~84KB