#[macro_use]
extern crate criterion;
use criterion::Criterion;
use crate::server::address_space::{address_space::AddressSpace, references::References};
use crate::types::node_ids::ReferenceTypeId;
fn populate_address_space() {
let _address_space = AddressSpace::new();
}
fn address_space_benchmark(c: &mut Criterion) {
c.bench_function("address_space", |b| b.iter(|| populate_address_space()));
}
fn reference_type_matches(references: &References) {
let r1 = ReferenceTypeId::References.into();
let r2 = ReferenceTypeId::AlwaysGeneratesEvent.into();
let r3 = ReferenceTypeId::HierarchicalReferences.into();
assert!(references.reference_type_matches(&r1, &r2, true));
assert!(!references.reference_type_matches(&r3, &r2, true));
}
fn reference_type_benchmark(c: &mut Criterion) {
c.bench_function("reference_type_benchmark", |b| {
let address_space = AddressSpace::new();
let references = address_space.references();
b.iter(|| reference_type_matches(references));
});
}
criterion_group!(benches, address_space_benchmark, reference_type_benchmark);
criterion_main!(benches);