use crate::{size_hint, Arbitrary, Error, MaxRecursionReached, Unstructured}; impl<'a, T, E> Arbitrary<'a> for Result where T: Arbitrary<'a>, E: Arbitrary<'a>, { fn arbitrary(u: &mut Unstructured<'a>) -> Result { Ok(if >::arbitrary(u)? { Ok(::arbitrary(u)?) } else { Err(::arbitrary(u)?) }) } #[inline] fn size_hint(depth: usize) -> (usize, Option) { Self::try_size_hint(depth).unwrap_or_default() } #[inline] fn try_size_hint(depth: usize) -> Result<(usize, Option), MaxRecursionReached> { Ok(size_hint::and( ::size_hint(depth), size_hint::or( ::try_size_hint(depth)?, ::try_size_hint(depth)?, ), )) } }