mod strategy { mod dragon; mod grisu; } use core::num::flt2dec::MAX_SIG_DIGITS; use core::num::flt2dec::{decode, DecodableFloat, Decoded, FullDecoded}; use std::io::Write; use std::vec::Vec; use test::Bencher; pub fn decode_finite(v: T) -> Decoded { match decode(v).1 { FullDecoded::Finite(decoded) => decoded, full_decoded => panic!("expected finite, got {full_decoded:?} instead"), } } #[bench] fn bench_small_shortest(b: &mut Bencher) { let mut buf = Vec::with_capacity(20); b.iter(|| { buf.clear(); write!(&mut buf, "{}", 3.1415926f64).unwrap() }); } #[bench] fn bench_big_shortest(b: &mut Bencher) { let mut buf = Vec::with_capacity(300); b.iter(|| { buf.clear(); write!(&mut buf, "{}", f64::MAX).unwrap() }); }