ress 0.11.7

A scanner/tokenizer for JS files
Documentation
#![allow(clippy::forget_non_drop)]
// This example exists to allow for profiling
// applications to provide details about
// the criterion benchmarks
use ress::Tokenizer;

static TEMPLATE_STARTS: &[&str] = &[
    "`things and stuff times ${",
    "`things and stuff`",
    r#"`a\${b`"#,
    r#"`\0\n\x0A\u000A\u{A}${"#,
];

static TEMPLATE_CONTINUATIONS: &[&str] = &[
    "`${} and animals and minerals`",
    "`${}`",
    "`${} and animals and minerals`",
    "`${} and places and people ${",
];

fn main() {
    for _ in 0..1000 {
        for s in TEMPLATE_CONTINUATIONS {
            parse_two(s);
        }
        for s in TEMPLATE_STARTS {
            parse(s);
        }
    }
}
#[inline]
fn parse_two(s: &str) {
    let mut t = Tokenizer::new(s);
    let _ = t.next(true).unwrap();
    let d = t.next(true).unwrap();
    core::mem::forget(d);
}
#[inline]
fn parse(s: &str) {
    let e = Tokenizer::new(s).next(true).unwrap();
    core::mem::forget(e);
}