agentic-forge-core 0.1.0

Blueprint engine for complete project architecture before code generation
Documentation
use agentic_forge_core::cache::Cache;
use criterion::{black_box, criterion_group, criterion_main, Criterion};
use std::time::Duration;

fn bench_cache_insert(c: &mut Criterion) {
    let cache: Cache<String, String> = Cache::new(10000, Duration::from_secs(300));

    c.bench_function("cache_insert", |b| {
        let mut i = 0u64;
        b.iter(|| {
            i += 1;
            cache.insert(format!("key_{}", i), format!("val_{}", i));
        })
    });
}

fn bench_cache_get_hit(c: &mut Criterion) {
    let cache: Cache<String, String> = Cache::new(10000, Duration::from_secs(300));
    cache.insert("hit_key".into(), "value".into());

    c.bench_function("cache_get_hit", |b| {
        b.iter(|| {
            black_box(cache.get(&"hit_key".into()));
        })
    });
}

fn bench_cache_get_miss(c: &mut Criterion) {
    let cache: Cache<String, String> = Cache::new(10000, Duration::from_secs(300));

    c.bench_function("cache_get_miss", |b| {
        b.iter(|| {
            black_box(cache.get(&"miss_key".into()));
        })
    });
}

criterion_group!(
    benches,
    bench_cache_insert,
    bench_cache_get_hit,
    bench_cache_get_miss
);
criterion_main!(benches);