13个版本
0.1.5 | 2023年10月11日 |
---|---|
0.1.4 | 2023年10月11日 |
0.0.7 | 2023年10月10日 |
0.0.4 | 2023年9月17日 |
0.0.2 | 2023年8月5日 |
207 在 过程宏 中排名
157 每月下载量
91KB
2.5K SLoC
此crate使检查proc宏输入的某些条件变得容易。它通过生成永远不会实际执行的const代码来实现,但其类型检查确保条件得到满足。
有关更多信息,请参阅Static Assertions crate。(免责声明:我与该crate的作者没有任何关联)
此crate的核心类型是Assertion Store
,它包含所有生成的断言,然后将其转换为标记。
对于包含的断言类型,建议使用assert_into!
宏。
此crate中各个项目的文档相当不错,一旦我有时间绘制出工作原理的功能概述,将提供一次。所以现在只需查看各个类型。
示例
pub use proc_macro_assertions::prelude::*;
let type_to_test: syn::Type = syn::parse_quote!(String);
let store = DefaultStore::new();
assert_into!(store | &type_to_test impl std::default::Default);
assert_into!(store | &type_to_test == String);
let tokens = quote::quote!{ #store };
依赖关系
~0.4–0.9MB
~20K SLoC