lib_tcstring 0.5.0

IAB TCF v2 TCString utilities
Documentation
use std::convert::TryFrom;

use criterion::{black_box, criterion_group, criterion_main, Criterion};

use lib_tcstring::TcModelV2;

fn criterion_benchmark(c: &mut Criterion) {
    c.bench_function("TCString V2 (core only)", |b| {
        b.iter(|| TcModelV2::try_from(black_box("COvFyGBOvFyGBAbAAAENAPCAAOAAAAAAAAAAAEEUACCKAAA")))
    });
    c.bench_function("TCString V2 (core + disclosed vendors)", |b| {
        b.iter(|| TcModelV2::try_from(black_box("COvFyGBOvFyGBAbAAAENAPCAAOAAAAAAAAAAAEEUACCKAAA.IFoEUQQgAIQwgIwQABAEAAAAOIAACAIAAAAQAIAgEAACEAAAAAgAQBAAAAAAAGBAAgAAAAAAAFAAECAAAgAAQARAEQAAAAAJAAIAAgAAAYQEAAAQmAgBC3ZAYzUw")))
    });
    c.bench_function("TCString V2 (core + disclosed vendors + allowed vendors)", |b| {
        b.iter(|| TcModelV2::try_from(black_box("COw4XqLOw4XqLAAAAAENAXCAAAAAAAAAAAAAAAAAAAAA.YAAAAAAAAAAAAAAAAAA.QFukWSQgAIQwgI0QEByFAAAAeIAACAIgSAAQAIAgEQACEABAAAgAQFAEAIAAAGBAAgAAAAQAIFAAMCQAAgAAQiRAEQAAAAANAAIAAggAIYQFAAARmggBC3ZCYzU2yIA.IFukWSQgAIQwgI0QEByFAAAAeIAACAIgSAAQAIAgEQACEABAAAgAQFAEAIAAAGBAAgAAAAQAIFAAMCQAAgAAQiRAEQAAAAANAAIAAggAIYQFAAARmggBC3ZCYzU2yIA")))
    });
    c.bench_function("TCString V2 (core + publisher tc)", |b| {
        b.iter(|| {
            TcModelV2::try_from(black_box(
                "COw4XqLOw4XqLAAAAAENAXCAAP-gAAAfwIAAACngAI8AAA.cAEAPAAAC7gAHw4AAA",
            ))
        })
    });
    c.bench_function("TCString V2 (core + disclosed vendors + allowed vendors + publisher tc)", |b| {
        b.iter(|| TcModelV2::try_from(black_box("COw4XqLOw4XqLAAAAAENAXCf-v-gAAAfwIAAACngAI8AEFABgACAA4A.IAPPwAPrwA.QAPPwAPrwA.cAEAPAAAC7gAHw4AAA")))
    });
}

criterion_group!(benches, criterion_benchmark);
criterion_main!(benches);