2个版本
0.2.2 | 2021年11月11日 |
---|---|
0.2.1 | 2019年10月28日 |
#4 in #单态化
在 beancount-account 中使用
175KB
momo
这是一个 proc_macro
包,用于帮助检查泛型方法的代码足迹。通常,泛型在库中用于提高易用性。然而,这会增加编译时间和二进制文件大小。理想情况下,创建一个小型的外壳函数来进行泛型转换,然后调用内部函数,但这会使代码可读性降低。
向您的函数添加此包的 #[momo]
注解,将您的函数拆分为外部转换和私有内部函数。作为回报,您将获得一点运行时编译时间(如果有的话)——而不会影响可读性。
当前支持的转换是 Into
(.into()
)、AsRef
(.as_ref()
) 和 AsMut
(.as_mut()
)。请参阅代码中的 enum Conversions
。
关于watt的说明
这个新更新的版本使用了D. Tolnay的watt运行时来加速编译时间,这受到了过程宏负载的负面影响。
主包使用包含标记版本的预构建wasm。可以使用以下命令重建wasm:
cd wasm
cargo build --release --target wasm32-unknown-unknown
# If wasm-opt is unavailable, copying the file is fine.
wasm-opt target/wasm32-unknown-unknown/release/momo_watt.wasm -Oz \
--strip-debug --simplify-globals --vacuum -o ../src/momo.wasm
您可能需要将 wasm32-unknown-unknown
目标添加到您的Rust工具链中。
(如果您正在标记新版本,请记住提交新的 wasm
文件。同时更改两个 Cargo.toml
文件中的版本。)
宏的调试
可以使用 cargo-expand 工具来展开宏展开的输出,包括此 proc-macro 的输出。要检查示例文件的结果,请使用 cargo expand --example check
。