Crate fast_escape [] [src]

This crate provides generic escaping of characters without requiring allocations. It leverages fast_fmt crate to do this.

Examples

Escaping whole writer

#[macro_use]
extern crate fast_fmt;
extern crate fast_escape;
extern crate void;

use fast_escape::Escaper;
use fast_fmt::Write;
use void::ResultVoidExt;

fn main() {
    let mut s = String::new();
    {
        let s = &mut s;
        let mut tr = s.transform(Escaper::new('\\', '$'));
     
        fwrite!(&mut tr, "abcd$efgh").void_unwrap();
    }
     
    assert_eq!(s, "abcd\\$efgh");
}

Escaping part of formatted text

#[macro_use]
extern crate fast_fmt;
extern crate fast_escape;
extern crate void;

use fast_escape::Escaper;
use void::ResultVoidExt;

fn main() {
    let mut s = String::new();
    let special_chars = ['$', '"'];
    let escaper: Escaper<&[char]> = Escaper::new('\\', &special_chars);
    let value = "$Hello \"world\"!";
    fwrite!(&mut s, "$foo=\"", value.transformed(escaper), "\"").void_unwrap();

    assert_eq!(s, "$foo=\"\\$Hello \\\"world\\\"!\"");
}

Structs

Escaper

This struct provides escaping of characters.

Predicate

Set defined by given predicate (function).

Union

Union of two sets of chars.

Traits

ContainsChar

Represents set of chars used for configuring Escaper.