tep 0.2.4

A blazingly fast command-line tool for converting Chinese punctuations to English punctuations.
Documentation
/// Overview: Process (cook) the source (raw) content.
use super::rule::Rule;
use super::tree::Tree;
use super::trim::trim;

pub fn cook(raw: &str) -> String {
    let raw_chars: Vec<char> = raw.chars().collect();
    let raw_len = raw_chars.len();
    let mut cooked = String::with_capacity(2 * raw.len());
    let mut index = 0usize;

    let search_tree = Tree::from(Rule::default_rules());

    while index < raw_len {
        match search_tree.query(&raw_chars, index, raw_len) {
            Some((to, depth)) => {
                cooked.push_str(to);
                index += depth;
            }
            None => {
                cooked.push(raw_chars[index]);
                index += 1;
            }
        }
    }

    trim(&cooked)
}