mirror of
https://github.com/mii443/RustySecrets.git
synced 2025-08-22 16:25:32 +00:00
Adds no_more_than_five
formatter
This should be useful when validating very large sets of shares. Wouldn't want to print out up to 254 shares.
This commit is contained in:
committed by
Romain Ruetschi
parent
71064a686e
commit
d6407c0e8a
@ -3,6 +3,7 @@
|
|||||||
#![allow(unknown_lints, missing_docs)]
|
#![allow(unknown_lints, missing_docs)]
|
||||||
|
|
||||||
use std::collections::HashSet;
|
use std::collections::HashSet;
|
||||||
|
use std::fmt;
|
||||||
|
|
||||||
#[cfg(feature = "dss")]
|
#[cfg(feature = "dss")]
|
||||||
use dss::ss1;
|
use dss::ss1;
|
||||||
@ -125,7 +126,7 @@ error_chain! {
|
|||||||
|
|
||||||
InconsistentSecretLengths(id: u8, slen_: usize, ids: Vec<u8>, slen: usize) {
|
InconsistentSecretLengths(id: u8, slen_: usize, ids: Vec<u8>, slen: usize) {
|
||||||
description("The shares are incompatible with each other because they do not all have the same secret length.")
|
description("The shares are incompatible with each other because they do not all have the same secret length.")
|
||||||
display("The share identifier {} had secret length {}, while the secret length {} was found for share identifier(s): {:?}.", id, slen_, slen, ids)
|
display("The share identifier {} had secret length {}, while the secret length {} was found for share identifier(s): {}.", id, slen_, slen, no_more_than_five(ids))
|
||||||
}
|
}
|
||||||
|
|
||||||
InconsistentShares {
|
InconsistentShares {
|
||||||
@ -135,7 +136,7 @@ error_chain! {
|
|||||||
|
|
||||||
InconsistentThresholds(id: u8, k_: u8, ids: Vec<u8>, k: u8) {
|
InconsistentThresholds(id: u8, k_: u8, ids: Vec<u8>, k: u8) {
|
||||||
description("The shares are incompatible with each other because they do not all have the same threshold.")
|
description("The shares are incompatible with each other because they do not all have the same threshold.")
|
||||||
display("The share identifier {} had k = {}, while k = {} was found for share identifier(s): {:?}.", id, k_, k, ids)
|
display("The share identifier {} had k = {}, while k = {} was found for share identifier(s): {}.", id, k_, k, no_more_than_five(ids))
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -145,3 +146,19 @@ error_chain! {
|
|||||||
IntegerParsingError(::std::num::ParseIntError);
|
IntegerParsingError(::std::num::ParseIntError);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Takes a `Vec<T>` and formats it like the normal `fmt::Debug` implementation, unless it has more
|
||||||
|
//than five elements, in which case the rest are replaced by ellipsis.
|
||||||
|
fn no_more_than_five<T: fmt::Debug + fmt::Display>(vec: &Vec<T>) -> String {
|
||||||
|
let len = vec.len();
|
||||||
|
if len > 5 {
|
||||||
|
let mut string = String::from("[");
|
||||||
|
for item in vec.iter().take(5) {
|
||||||
|
string += &format!("{}, ", item);
|
||||||
|
}
|
||||||
|
string.push_str("...]");
|
||||||
|
string
|
||||||
|
} else {
|
||||||
|
format!("{:?}", vec)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user