macro_rules! impl_arb_for_bytes {
($name: ident, $len: expr) => (
impl Arbitrary for $name {
fn arbitrary<G: Gen>(g: &mut G) -> Self {
let n = g.gen_range(0, $len + 1);
let mut bytes = vec![0; n];
g.fill_bytes(&mut bytes[..n]);
$name(bytes)
}
}
)
}
macro_rules! impl_arb_for_pn {
($name:ident) => (
impl Arbitrary for $name {
fn arbitrary<G: Gen>(g: &mut G) -> Self {
$name(Arbitrary::arbitrary(g))
}
}
)
}
macro_rules! quick_pk_from_bytes {
($input:ident, $out:ident) => (
if $input.len() < PUBLICKEYBYTES {
return TestResult::discard()
}
let $out = PublicKey::from_slice(&$input[..PUBLICKEYBYTES])
.expect("Failed to make PK from slice");
)
}