1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
use crate::Decimal;

use arbitrary::{Arbitrary, Result as ArbitraryResult, Unstructured};

impl Arbitrary<'_> for crate::Decimal {
    fn arbitrary(u: &mut Unstructured<'_>) -> ArbitraryResult<Self> {
        let lo = u32::arbitrary(u)?;
        let mid = u32::arbitrary(u)?;
        let hi = u32::arbitrary(u)?;
        let negative = bool::arbitrary(u)?;
        let scale = u32::arbitrary(u)?;
        Ok(Decimal::from_parts(lo, mid, hi, negative, scale))
    }
}