Module word_filter::codegen [−][src]
Expand description
Tools for code generation.
This module is intended to be used in the context of a
build script to generate code
at compile time. To use, add word_filter
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 the word_filter
crate to both the Cargo.toml
[dependencies]
and
[build-dependencies]
lists.
... [dependencies] word_filter = "0.7.0" [build-dependencies] word_filter = "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
Flags defining repetition settings.
Flags defining separator settings.
Code generator for [WordFilter
]s, following the builder pattern.
Enums
Visibility of generated code.