pub trait Shrink: Clone {
type Item;
type Iterator: Iterator<Item = Self::Item>;
fn shrink(&self, value: &Self::Item) -> Self::Iterator;
}
Associated Types
Required Methods
Implementors
impl<T> Shrink for Empty<T>
impl<'a, S: Shrink> Shrink for &'a S
impl<TuplesImplA: 'static + Shrink, TuplesImplB: 'static + Shrink, TuplesImplC: 'static + Shrink, TuplesImplD: 'static + Shrink, TuplesImplE: 'static + Shrink, TuplesImplF: 'static + Shrink, TuplesImplG: 'static + Shrink, TuplesImplH: 'static + Shrink, TuplesImplI: 'static + Shrink, TuplesImplJ: 'static + Shrink, TuplesImplK: 'static + Shrink, TuplesImplL: 'static + Shrink> Shrink for (TuplesImplA, TuplesImplB, TuplesImplC, TuplesImplD, TuplesImplE, TuplesImplF, TuplesImplG, TuplesImplH, TuplesImplI, TuplesImplJ, TuplesImplK, TuplesImplL) where
TuplesImplA::Item: Clone,
TuplesImplB::Item: Clone,
TuplesImplC::Item: Clone,
TuplesImplD::Item: Clone,
TuplesImplE::Item: Clone,
TuplesImplF::Item: Clone,
TuplesImplG::Item: Clone,
TuplesImplH::Item: Clone,
TuplesImplI::Item: Clone,
TuplesImplJ::Item: Clone,
TuplesImplK::Item: Clone,
TuplesImplL::Item: Clone,
impl<TuplesImplB: 'static + Shrink, TuplesImplC: 'static + Shrink, TuplesImplD: 'static + Shrink, TuplesImplE: 'static + Shrink, TuplesImplF: 'static + Shrink, TuplesImplG: 'static + Shrink, TuplesImplH: 'static + Shrink, TuplesImplI: 'static + Shrink, TuplesImplJ: 'static + Shrink, TuplesImplK: 'static + Shrink, TuplesImplL: 'static + Shrink> Shrink for (TuplesImplB, TuplesImplC, TuplesImplD, TuplesImplE, TuplesImplF, TuplesImplG, TuplesImplH, TuplesImplI, TuplesImplJ, TuplesImplK, TuplesImplL) where
TuplesImplB::Item: Clone,
TuplesImplC::Item: Clone,
TuplesImplD::Item: Clone,
TuplesImplE::Item: Clone,
TuplesImplF::Item: Clone,
TuplesImplG::Item: Clone,
TuplesImplH::Item: Clone,
TuplesImplI::Item: Clone,
TuplesImplJ::Item: Clone,
TuplesImplK::Item: Clone,
TuplesImplL::Item: Clone,
impl<TuplesImplC: 'static + Shrink, TuplesImplD: 'static + Shrink, TuplesImplE: 'static + Shrink, TuplesImplF: 'static + Shrink, TuplesImplG: 'static + Shrink, TuplesImplH: 'static + Shrink, TuplesImplI: 'static + Shrink, TuplesImplJ: 'static + Shrink, TuplesImplK: 'static + Shrink, TuplesImplL: 'static + Shrink> Shrink for (TuplesImplC, TuplesImplD, TuplesImplE, TuplesImplF, TuplesImplG, TuplesImplH, TuplesImplI, TuplesImplJ, TuplesImplK, TuplesImplL) where
TuplesImplC::Item: Clone,
TuplesImplD::Item: Clone,
TuplesImplE::Item: Clone,
TuplesImplF::Item: Clone,
TuplesImplG::Item: Clone,
TuplesImplH::Item: Clone,
TuplesImplI::Item: Clone,
TuplesImplJ::Item: Clone,
TuplesImplK::Item: Clone,
TuplesImplL::Item: Clone,
impl<TuplesImplD: 'static + Shrink, TuplesImplE: 'static + Shrink, TuplesImplF: 'static + Shrink, TuplesImplG: 'static + Shrink, TuplesImplH: 'static + Shrink, TuplesImplI: 'static + Shrink, TuplesImplJ: 'static + Shrink, TuplesImplK: 'static + Shrink, TuplesImplL: 'static + Shrink> Shrink for (TuplesImplD, TuplesImplE, TuplesImplF, TuplesImplG, TuplesImplH, TuplesImplI, TuplesImplJ, TuplesImplK, TuplesImplL) where
TuplesImplD::Item: Clone,
TuplesImplE::Item: Clone,
TuplesImplF::Item: Clone,
TuplesImplG::Item: Clone,
TuplesImplH::Item: Clone,
TuplesImplI::Item: Clone,
TuplesImplJ::Item: Clone,
TuplesImplK::Item: Clone,
TuplesImplL::Item: Clone,
impl<TuplesImplE: 'static + Shrink, TuplesImplF: 'static + Shrink, TuplesImplG: 'static + Shrink, TuplesImplH: 'static + Shrink, TuplesImplI: 'static + Shrink, TuplesImplJ: 'static + Shrink, TuplesImplK: 'static + Shrink, TuplesImplL: 'static + Shrink> Shrink for (TuplesImplE, TuplesImplF, TuplesImplG, TuplesImplH, TuplesImplI, TuplesImplJ, TuplesImplK, TuplesImplL) where
TuplesImplE::Item: Clone,
TuplesImplF::Item: Clone,
TuplesImplG::Item: Clone,
TuplesImplH::Item: Clone,
TuplesImplI::Item: Clone,
TuplesImplJ::Item: Clone,
TuplesImplK::Item: Clone,
TuplesImplL::Item: Clone,
impl<TuplesImplF: 'static + Shrink, TuplesImplG: 'static + Shrink, TuplesImplH: 'static + Shrink, TuplesImplI: 'static + Shrink, TuplesImplJ: 'static + Shrink, TuplesImplK: 'static + Shrink, TuplesImplL: 'static + Shrink> Shrink for (TuplesImplF, TuplesImplG, TuplesImplH, TuplesImplI, TuplesImplJ, TuplesImplK, TuplesImplL) where
TuplesImplF::Item: Clone,
TuplesImplG::Item: Clone,
TuplesImplH::Item: Clone,
TuplesImplI::Item: Clone,
TuplesImplJ::Item: Clone,
TuplesImplK::Item: Clone,
TuplesImplL::Item: Clone,
impl<TuplesImplG: 'static + Shrink, TuplesImplH: 'static + Shrink, TuplesImplI: 'static + Shrink, TuplesImplJ: 'static + Shrink, TuplesImplK: 'static + Shrink, TuplesImplL: 'static + Shrink> Shrink for (TuplesImplG, TuplesImplH, TuplesImplI, TuplesImplJ, TuplesImplK, TuplesImplL) where
TuplesImplG::Item: Clone,
TuplesImplH::Item: Clone,
TuplesImplI::Item: Clone,
TuplesImplJ::Item: Clone,
TuplesImplK::Item: Clone,
TuplesImplL::Item: Clone,
impl<TuplesImplH: 'static + Shrink, TuplesImplI: 'static + Shrink, TuplesImplJ: 'static + Shrink, TuplesImplK: 'static + Shrink, TuplesImplL: 'static + Shrink> Shrink for (TuplesImplH, TuplesImplI, TuplesImplJ, TuplesImplK, TuplesImplL) where
TuplesImplH::Item: Clone,
TuplesImplI::Item: Clone,
TuplesImplJ::Item: Clone,
TuplesImplK::Item: Clone,
TuplesImplL::Item: Clone,
impl<TuplesImplI: 'static + Shrink, TuplesImplJ: 'static + Shrink, TuplesImplK: 'static + Shrink, TuplesImplL: 'static + Shrink> Shrink for (TuplesImplI, TuplesImplJ, TuplesImplK, TuplesImplL) where
TuplesImplI::Item: Clone,
TuplesImplJ::Item: Clone,
TuplesImplK::Item: Clone,
TuplesImplL::Item: Clone,
impl<TuplesImplJ: 'static + Shrink, TuplesImplK: 'static + Shrink, TuplesImplL: 'static + Shrink> Shrink for (TuplesImplJ, TuplesImplK, TuplesImplL) where
TuplesImplJ::Item: Clone,
TuplesImplK::Item: Clone,
TuplesImplL::Item: Clone,
impl<TuplesImplK: 'static + Shrink, TuplesImplL: 'static + Shrink> Shrink for (TuplesImplK, TuplesImplL) where
TuplesImplK::Item: Clone,
TuplesImplL::Item: Clone,
impl<TuplesImplL: 'static + Shrink> Shrink for (TuplesImplL,) where
TuplesImplL::Item: Clone,
impl Shrink for ()
impl Shrink for IntegerShrinker<i8>
impl Shrink for IntegerShrinker<i16>
impl Shrink for IntegerShrinker<i32>
impl Shrink for IntegerShrinker<i64>
impl Shrink for IntegerShrinker<isize>
impl Shrink for UnsignedIntegerShrinker<u8>
impl Shrink for UnsignedIntegerShrinker<u16>
impl Shrink for UnsignedIntegerShrinker<u32>
impl Shrink for UnsignedIntegerShrinker<u64>
impl Shrink for UnsignedIntegerShrinker<usize>
impl<C, S> Shrink for FromIteratorShrinker<C, S> where
S: Shrink + 'static,
C: FromIterator<S::Item> + IntoIterator<Item = S::Item> + Clone + 'static,
S::Item: Clone + 'static,
impl Shrink for DefaultShrinker<bool>