Expand description
Code generation for the word_filter crate.
This crate is intended to be used alongside the word_filter crate to generate code at compile
time. To use, add word_filter_codegen to the [build-dependency] list and generate the code
in a build.rs file. Then include! the file in lib.rs.
§Example
For example, a simple WordFilter can be generated by the following.
First, add both the word_filter and word_filter_codegen crates to the Cargo.toml
[dependencies] and [build-dependencies] lists respectively.
...
[dependencies]
word_filter = "0.7.0"
[build-dependencies]
word_filter_codegen = "0.7.0"
...Next, generate the WordFilter in the build.rs file.
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")
);
}And finally, include the generated code in the lib.rs file.
ⓘ
include!(concat!(env!("OUT_DIR"), "/codegen.rs"));
assert!(FILTER.censor("Should censor foo."), "Should censor ***.");Structs§
- Separator
Flags - Flags defining separator settings.
- Word
Filter Generator - Code generator for
WordFilters, following the builder pattern.
Enums§
- Visibility
- Visibility of generated code.