diff --git a/build.rs b/build.rs index 414eba9..a92fc24 100644 --- a/build.rs +++ b/build.rs @@ -15,6 +15,9 @@ fn main() { let ac = autocfg::new(); ac.emit_rustc_version(1, 70); + // slice::fill + ac.emit_rustc_version(1, 50); + // Option::zip ac.emit_rustc_version(1, 46); diff --git a/src/impl_fmt.rs b/src/impl_fmt.rs index 35ff216..8349193 100644 --- a/src/impl_fmt.rs +++ b/src/impl_fmt.rs @@ -367,7 +367,7 @@ fn format_ascii_digits_no_integer( digits_ascii_be.copy_within(..sig_digit_count, sig_digit_idx); // clear copied values - digits_ascii_be[..sig_digit_count.min(sig_digit_idx)].fill(b'0'); + fill_slice(&mut digits_ascii_be[..sig_digit_count.min(sig_digit_idx)], b'0'); } else { debug_assert_eq!(sig_digit_count, 1); } @@ -378,6 +378,18 @@ fn format_ascii_digits_no_integer( } } +#[cfg(rust_1_50)] +fn fill_slice(v: &mut [T], value: T) { + v.fill(value); +} + +#[cfg(not(rust_1_50))] +fn fill_slice(v: &mut [T], value: T) { + for i in v.iter_mut() { + *i = value.clone(); + } +} + /// Format integer as {int}e+{exp} ///