use crate::{ bench_decode_generic, bench_encode_generic, shard_selection::ShardSelection::{Best, Interleaved, Worst}, }; use commonware_coding::ReedSolomon; use commonware_cryptography::Sha256; use criterion::{Criterion, criterion_group}; fn bench_encode(c: &mut Criterion) { bench_encode_generic::>("reed_solomon::encode", c); } fn bench_decode(c: &mut Criterion) { // Payload bytes, total shards, worker count, and shard selection. let cases = [ (1 << 12, 20, 1, Interleaved), (1 << 20, 20, 1, Interleaved), (1 << 20, 20, 4, Interleaved), (1 << 23, 20, 1, Interleaved), (1 << 23, 20, 4, Interleaved), (1 << 20, 100, 4, Interleaved), (1 << 20, 250, 4, Interleaved), (1 << 20, 500, 4, Interleaved), (1 << 20, 20, 4, Best), (1 << 20, 20, 4, Worst), ]; bench_decode_generic::>("reed_solomon::decode", c, &cases); } criterion_group! { name = benches; config = Criterion::default().sample_size(10); targets = bench_encode, bench_decode }