ckb-merkle-mountain-range 0.1.0

A generalized merkle mountain range implementation
Documentation
#[macro_use]
extern crate criterion;
use criterion::Criterion;

use ckb_merkle_mountain_range::{leaf_index_to_mmr_size, leaf_index_to_pos};

use rand::{thread_rng, Rng};

fn bench(c: &mut Criterion) {
    c.bench_function("left_index_to_pos", |b| {
        let mut rng = thread_rng();
        b.iter(|| {
            let leaf_index = rng.gen_range(50_000_000_000, 70_000_000_000);
            leaf_index_to_pos(leaf_index);
        });
    });

    c.bench_function("left_index_to_mmr_size", |b| {
        let mut rng = thread_rng();
        b.iter(|| {
            let leaf_index = rng.gen_range(50_000_000_000, 70_000_000_000);
            leaf_index_to_mmr_size(leaf_index);
        });
    });
}

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