openraft 0.9.23

Advanced Raft consensus
Documentation
extern crate test;

use maplit::btreeset;
use test::black_box;
use test::Bencher;

use crate::quorum::AsJoint;
use crate::quorum::QuorumSet;

#[bench]
fn quorum_set_slice_ids_slice(b: &mut Bencher) {
    let m12345: &[usize] = &[1, 2, 3, 4, 5];
    let x = [1, 2, 3, 6, 7];
    b.iter(|| m12345.is_quorum(black_box(x.iter())))
}

#[bench]
fn quorum_set_vec_ids_slice(b: &mut Bencher) {
    let m12345 = vec![1, 2, 3, 4, 5];
    let x = [1, 2, 3, 6, 7];
    b.iter(|| m12345.is_quorum(black_box(x.iter())))
}

#[bench]
fn quorum_set_btreeset_ids_slice(b: &mut Bencher) {
    let m12345678 = btreeset! {1,2,3,4,5,6,7,8};
    let x = [1, 2, 3, 6, 7];
    b.iter(|| m12345678.is_quorum(black_box(x.iter())))
}

#[bench]
fn quorum_set_vec_of_vec_ids_slice(b: &mut Bencher) {
    let m12345_678 = vec![vec![1, 2, 3, 4, 5], vec![6, 7, 8]];
    let x = [1, 2, 3, 6, 7];
    b.iter(|| m12345_678.as_joint().is_quorum(black_box(x.iter())))
}

#[bench]
fn quorum_set_vec_of_btreeset_ids_slice(b: &mut Bencher) {
    let m12345_678 = vec![btreeset! {1,2,3,4,5}, btreeset! {6,7,8}];
    let x = [1, 2, 3, 6, 7];
    b.iter(|| m12345_678.as_joint().is_quorum(black_box(x.iter())))
}

#[bench]
fn quorum_set_vec_of_btreeset_ids_btreeset(b: &mut Bencher) {
    let m12345_678 = vec![btreeset! {1,2,3,4,5}, btreeset! {6,7,8}];
    let x = btreeset! {1,2,3,6,7};
    b.iter(|| m12345_678.as_joint().is_quorum(black_box(x.iter())))
}