diff --git a/examples/inbreeding/mod.rs b/examples/inbreeding/mod.rs index 8be8e058abcebd5502442dd9346113494e96cbd7..c01a0ecefcecf23c460db70db4a7c539ece6b29f 100644 --- a/examples/inbreeding/mod.rs +++ b/examples/inbreeding/mod.rs @@ -158,6 +158,10 @@ where pb.set_style(sty.clone()); pb.set_message("main"); for t in 0..=max_t { + if shards.len() < k { + break; + } + if measurement_schedule(t) { let inbreeding = measure_inbreeding(&shards, k, nb_measurements, &mp, &sty, rng); println!("{}", inbreeding); diff --git a/src/fec.rs b/src/fec.rs index 47993e668131c0054af4433de9e188601387e1a1..9284d326093f961c5babe9ae37bd87feb4386c50 100644 --- a/src/fec.rs +++ b/src/fec.rs @@ -160,6 +160,10 @@ pub fn encode<F: PrimeField>( /// > - if there are too few shards /// > - if there are linear dependencies between shards pub fn decode<F: PrimeField>(shards: Vec<Shard<F>>) -> Result<Vec<u8>, KomodoError> { + if shards.is_empty() { + return Err(KomodoError::TooFewShards(0, 0)); + } + let k = shards[0].k; let np = shards.len();