4 个版本 (2 个破坏性更新)
0.7.0 | 2021 年 8 月 1 日 |
---|---|
0.6.0 | 2021 年 6 月 23 日 |
0.5.1 | 2021 年 5 月 28 日 |
0.5.0 | 2021 年 5 月 28 日 |
#508 in 构建工具
41KB
682 行
word_filter_codegen
生成 Word 过滤器的工具。
此crate旨在用作word_filter
crate的构建工具。它使用 WordFilterGenerator
在编译时生成 WordFilter
。
示例
例如,可以使用以下方式生成一个简单的 WordFilter
。
首先,将 word_filter
和 word_filter_codegen
crate 分别添加到 Cargo.toml
文件的 [dependencies]
和 [build-dependencies]
列表中。确保它们的版本匹配。
[dependencies]
word_filter = "0.6.0"
[build-dependencies]
word_filter_codegen = "0.6.0"
然后,在 build.rs
文件中生成 WordFilter
。
use std::{
env,
fs::File,
io::{BufWriter, Write},
path::Path,
};
use word_filter_codegen::{Visibility, WordFilterGenerator};
fn main() {
let path = Path::new(&env::var("OUT_DIR").unwrap()).join("codegen.rs");
let mut file = BufWriter::new(File::create(&path).unwrap());
writeln!(
&mut file,
"{}",
WordFilterGenerator::new()
.visibility(Visibility::Pub)
.word("foo")
.generate("FILTER")
);
}
最后,将生成的代码包含到 lib.rs
文件中。
include!(concat!(env!("OUT_DIR"), "/codegen.rs"));
assert!(FILTER.censor("Should censor foo."), "Should censor ***.");
最低支持的 Rust 版本
此crate保证在稳定版的 rustc 1.51.0
及更高版本上编译。
许可证
此项目可在以下任一许可证下使用:
- Apache 许可证 2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则根据Apache-2.0许可证定义的,您有意提交以包含在内的任何贡献,将按照上述方式双许可,不附加任何额外条款或条件。
依赖项
~1.5MB
~26K SLoC