Module word_filter::censor[][src]

Expand description

Macros for creating censors to be used in a WordFilter.

These macros are provided for conveniently creating common censor functions. The resulting functions have the signature fn(&str) -> String and can therefore be provided when calling the censor_with() method on a WordFilter.

Example

Assuming a compile-time constructed WordFilter FILTER, defined in a build.rs as:

use std::{
    env,
    fs::File,
    io::{BufWriter, Write},
    path::Path,
};
use word_filter_codegen::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()
            .word("foo")
            .generate("FILTER")
        );
}

an input can be censored with a custom censor function as follows:

use word_filter::censor;

include!(concat!(env!("OUT_DIR"), "/codegen.rs"));

assert!(
    FILTER.censor_with("this string contains foo", censor::replace_graphemes_with("#")),
    "this string contains ###"
);

Macros

Creates a censor replacing every grapheme with the given string.

Creates a sensor replacing the full matched words with the given string.