where D: Deserializer<'de>, { Ok(DeserializeFromStr::deserialize(deserializer)?.0) } } #[cfg(test)] mod tests { use super::*; #[test] fn rarity() { assert_eq!(Sat(0).rarity(), Rarity::Mythic); assert_eq!(Sat(1).rarity(), Rarity::Common); assert_eq!(Sat(50 * COIN_VALUE - 1).rarity(), Rarity::Common); assert_eq!(Sat(50 * COIN_VALUE).rarity(), Rarity::Uncommon); assert_eq!(Sat(50 * COIN_VALUE + 1).rarity(), Rarity::Common); assert_eq!( Sat(50 * COIN_VALUE * u64::from(DIFFCHANGE_INTERVAL) - 1).rarity(), Rarity::Common ); assert_eq!( Sat(50 * COIN_VALUE * u64::from(DIFFCHANGE_INTERVAL)).rarity(), Rarity::Rare ); assert_eq!( Sat(50 * COIN_VALUE * u64::from(DIFFCHANGE_INTERVAL) + 1).rarity(), Rarity::Common ); assert_eq!( Sat(50 * COIN_VALUE * u64::from(SUBSIDY_HALVING_INTERVAL) - 1).rarity(), Rarity::Common ); assert_eq!( Sat(50 * COIN_VALUE * u64::from(SUBSIDY_HALVING_INTERVAL)).rarity(),