From e07fab33352ab273b0a89b2ad6afec28c0393e2b Mon Sep 17 00:00:00 2001 From: Lokathor Date: Thu, 1 Apr 2021 19:47:38 -0600 Subject: [PATCH] use alternate printing when requested. (#139) --- src/arrayvec.rs | 91 +++++++++++++++++++++++++++++++++++++++++-------- src/slicevec.rs | 72 +++++++++++++++++++++++++++++++++----- src/tinyvec.rs | 79 +++++++++++++++++++++++++++++++++++++----- 3 files changed, 210 insertions(+), 32 deletions(-) diff --git a/src/arrayvec.rs b/src/arrayvec.rs index 1ab2f2c..3f8a672 100644 --- a/src/arrayvec.rs +++ b/src/arrayvec.rs @@ -1,5 +1,5 @@ use super::*; -use core::convert::{TryInto, TryFrom}; +use core::convert::{TryFrom, TryInto}; #[cfg(feature = "serde")] use core::marker::PhantomData; @@ -1190,20 +1190,22 @@ impl From for ArrayVec { } } -/// The error type returned when a conversion from a slice to an [`ArrayVec`] fails. +/// The error type returned when a conversion from a slice to an [`ArrayVec`] +/// fails. #[derive(Debug, Copy, Clone)] pub struct TryFromSliceError(()); impl TryFrom<&'_ [T]> for ArrayVec where - T: Clone + Default, - A: Array, + T: Clone + Default, + A: Array, { type Error = TryFromSliceError; #[inline] #[must_use] - /// The output has a length equal to that of the slice, with the same capacity as `A`. + /// The output has a length equal to that of the slice, with the same capacity + /// as `A`. fn try_from(slice: &[T]) -> Result { if slice.len() > A::CAPACITY { Err(TryFromSliceError(())) @@ -1453,12 +1455,18 @@ where #[allow(clippy::missing_inline_in_public_items)] fn fmt(&self, f: &mut Formatter) -> core::fmt::Result { write!(f, "[")?; + if f.alternate() { + write!(f, "\n ")?; + } for (i, elem) in self.iter().enumerate() { if i > 0 { - write!(f, ", ")?; + write!(f, ",{}", if f.alternate() { "\n " } else { " " })?; } Binary::fmt(elem, f)?; } + if f.alternate() { + write!(f, ",\n")?; + } write!(f, "]") } } @@ -1469,7 +1477,20 @@ where { #[allow(clippy::missing_inline_in_public_items)] fn fmt(&self, f: &mut Formatter) -> core::fmt::Result { - core::fmt::Debug::fmt(self.as_slice(), f) + write!(f, "[")?; + if f.alternate() { + write!(f, "\n ")?; + } + for (i, elem) in self.iter().enumerate() { + if i > 0 { + write!(f, ",{}", if f.alternate() { "\n " } else { " " })?; + } + Debug::fmt(elem, f)?; + } + if f.alternate() { + write!(f, ",\n")?; + } + write!(f, "]") } } @@ -1480,12 +1501,18 @@ where #[allow(clippy::missing_inline_in_public_items)] fn fmt(&self, f: &mut Formatter) -> core::fmt::Result { write!(f, "[")?; + if f.alternate() { + write!(f, "\n ")?; + } for (i, elem) in self.iter().enumerate() { if i > 0 { - write!(f, ", ")?; + write!(f, ",{}", if f.alternate() { "\n " } else { " " })?; } Display::fmt(elem, f)?; } + if f.alternate() { + write!(f, ",\n")?; + } write!(f, "]") } } @@ -1497,12 +1524,18 @@ where #[allow(clippy::missing_inline_in_public_items)] fn fmt(&self, f: &mut Formatter) -> core::fmt::Result { write!(f, "[")?; + if f.alternate() { + write!(f, "\n ")?; + } for (i, elem) in self.iter().enumerate() { if i > 0 { - write!(f, ", ")?; + write!(f, ",{}", if f.alternate() { "\n " } else { " " })?; } LowerExp::fmt(elem, f)?; } + if f.alternate() { + write!(f, ",\n")?; + } write!(f, "]") } } @@ -1514,12 +1547,18 @@ where #[allow(clippy::missing_inline_in_public_items)] fn fmt(&self, f: &mut Formatter) -> core::fmt::Result { write!(f, "[")?; + if f.alternate() { + write!(f, "\n ")?; + } for (i, elem) in self.iter().enumerate() { if i > 0 { - write!(f, ", ")?; + write!(f, ",{}", if f.alternate() { "\n " } else { " " })?; } LowerHex::fmt(elem, f)?; } + if f.alternate() { + write!(f, ",\n")?; + } write!(f, "]") } } @@ -1531,12 +1570,18 @@ where #[allow(clippy::missing_inline_in_public_items)] fn fmt(&self, f: &mut Formatter) -> core::fmt::Result { write!(f, "[")?; + if f.alternate() { + write!(f, "\n ")?; + } for (i, elem) in self.iter().enumerate() { if i > 0 { - write!(f, ", ")?; + write!(f, ",{}", if f.alternate() { "\n " } else { " " })?; } Octal::fmt(elem, f)?; } + if f.alternate() { + write!(f, ",\n")?; + } write!(f, "]") } } @@ -1548,12 +1593,18 @@ where #[allow(clippy::missing_inline_in_public_items)] fn fmt(&self, f: &mut Formatter) -> core::fmt::Result { write!(f, "[")?; + if f.alternate() { + write!(f, "\n ")?; + } for (i, elem) in self.iter().enumerate() { if i > 0 { - write!(f, ", ")?; + write!(f, ",{}", if f.alternate() { "\n " } else { " " })?; } Pointer::fmt(elem, f)?; } + if f.alternate() { + write!(f, ",\n")?; + } write!(f, "]") } } @@ -1565,12 +1616,18 @@ where #[allow(clippy::missing_inline_in_public_items)] fn fmt(&self, f: &mut Formatter) -> core::fmt::Result { write!(f, "[")?; + if f.alternate() { + write!(f, "\n ")?; + } for (i, elem) in self.iter().enumerate() { if i > 0 { - write!(f, ", ")?; + write!(f, ",{}", if f.alternate() { "\n " } else { " " })?; } UpperExp::fmt(elem, f)?; } + if f.alternate() { + write!(f, ",\n")?; + } write!(f, "]") } } @@ -1582,12 +1639,18 @@ where #[allow(clippy::missing_inline_in_public_items)] fn fmt(&self, f: &mut Formatter) -> core::fmt::Result { write!(f, "[")?; + if f.alternate() { + write!(f, "\n ")?; + } for (i, elem) in self.iter().enumerate() { if i > 0 { - write!(f, ", ")?; + write!(f, ",{}", if f.alternate() { "\n " } else { " " })?; } UpperHex::fmt(elem, f)?; } + if f.alternate() { + write!(f, ",\n")?; + } write!(f, "]") } } diff --git a/src/slicevec.rs b/src/slicevec.rs index 3aa6c0e..9dcd24a 100644 --- a/src/slicevec.rs +++ b/src/slicevec.rs @@ -879,12 +879,18 @@ where #[allow(clippy::missing_inline_in_public_items)] fn fmt(&self, f: &mut Formatter) -> core::fmt::Result { write!(f, "[")?; + if f.alternate() { + write!(f, "\n ")?; + } for (i, elem) in self.iter().enumerate() { if i > 0 { - write!(f, ", ")?; + write!(f, ",{}", if f.alternate() { "\n " } else { " " })?; } Binary::fmt(elem, f)?; } + if f.alternate() { + write!(f, ",\n")?; + } write!(f, "]") } } @@ -896,12 +902,18 @@ where #[allow(clippy::missing_inline_in_public_items)] fn fmt(&self, f: &mut Formatter) -> core::fmt::Result { write!(f, "[")?; + if f.alternate() { + write!(f, "\n ")?; + } for (i, elem) in self.iter().enumerate() { if i > 0 { - write!(f, ", ")?; + write!(f, ",{}", if f.alternate() { "\n " } else { " " })?; } Debug::fmt(elem, f)?; } + if f.alternate() { + write!(f, ",\n")?; + } write!(f, "]") } } @@ -913,12 +925,18 @@ where #[allow(clippy::missing_inline_in_public_items)] fn fmt(&self, f: &mut Formatter) -> core::fmt::Result { write!(f, "[")?; + if f.alternate() { + write!(f, "\n ")?; + } for (i, elem) in self.iter().enumerate() { if i > 0 { - write!(f, ", ")?; + write!(f, ",{}", if f.alternate() { "\n " } else { " " })?; } Display::fmt(elem, f)?; } + if f.alternate() { + write!(f, ",\n")?; + } write!(f, "]") } } @@ -930,12 +948,18 @@ where #[allow(clippy::missing_inline_in_public_items)] fn fmt(&self, f: &mut Formatter) -> core::fmt::Result { write!(f, "[")?; + if f.alternate() { + write!(f, "\n ")?; + } for (i, elem) in self.iter().enumerate() { if i > 0 { - write!(f, ", ")?; + write!(f, ",{}", if f.alternate() { "\n " } else { " " })?; } LowerExp::fmt(elem, f)?; } + if f.alternate() { + write!(f, ",\n")?; + } write!(f, "]") } } @@ -947,12 +971,18 @@ where #[allow(clippy::missing_inline_in_public_items)] fn fmt(&self, f: &mut Formatter) -> core::fmt::Result { write!(f, "[")?; + if f.alternate() { + write!(f, "\n ")?; + } for (i, elem) in self.iter().enumerate() { if i > 0 { - write!(f, ", ")?; + write!(f, ",{}", if f.alternate() { "\n " } else { " " })?; } LowerHex::fmt(elem, f)?; } + if f.alternate() { + write!(f, ",\n")?; + } write!(f, "]") } } @@ -964,12 +994,18 @@ where #[allow(clippy::missing_inline_in_public_items)] fn fmt(&self, f: &mut Formatter) -> core::fmt::Result { write!(f, "[")?; + if f.alternate() { + write!(f, "\n ")?; + } for (i, elem) in self.iter().enumerate() { if i > 0 { - write!(f, ", ")?; + write!(f, ",{}", if f.alternate() { "\n " } else { " " })?; } Octal::fmt(elem, f)?; } + if f.alternate() { + write!(f, ",\n")?; + } write!(f, "]") } } @@ -981,12 +1017,18 @@ where #[allow(clippy::missing_inline_in_public_items)] fn fmt(&self, f: &mut Formatter) -> core::fmt::Result { write!(f, "[")?; + if f.alternate() { + write!(f, "\n ")?; + } for (i, elem) in self.iter().enumerate() { if i > 0 { - write!(f, ", ")?; + write!(f, ",{}", if f.alternate() { "\n " } else { " " })?; } Pointer::fmt(elem, f)?; } + if f.alternate() { + write!(f, ",\n")?; + } write!(f, "]") } } @@ -998,12 +1040,18 @@ where #[allow(clippy::missing_inline_in_public_items)] fn fmt(&self, f: &mut Formatter) -> core::fmt::Result { write!(f, "[")?; + if f.alternate() { + write!(f, "\n ")?; + } for (i, elem) in self.iter().enumerate() { if i > 0 { - write!(f, ", ")?; + write!(f, ",{}", if f.alternate() { "\n " } else { " " })?; } UpperExp::fmt(elem, f)?; } + if f.alternate() { + write!(f, ",\n")?; + } write!(f, "]") } } @@ -1015,12 +1063,18 @@ where #[allow(clippy::missing_inline_in_public_items)] fn fmt(&self, f: &mut Formatter) -> core::fmt::Result { write!(f, "[")?; + if f.alternate() { + write!(f, "\n ")?; + } for (i, elem) in self.iter().enumerate() { if i > 0 { - write!(f, ", ")?; + write!(f, ",{}", if f.alternate() { "\n " } else { " " })?; } UpperHex::fmt(elem, f)?; } + if f.alternate() { + write!(f, ",\n")?; + } write!(f, "]") } } diff --git a/src/tinyvec.rs b/src/tinyvec.rs index b333a68..32519c7 100644 --- a/src/tinyvec.rs +++ b/src/tinyvec.rs @@ -1309,12 +1309,18 @@ where #[allow(clippy::missing_inline_in_public_items)] fn fmt(&self, f: &mut Formatter) -> core::fmt::Result { write!(f, "[")?; + if f.alternate() { + write!(f, "\n ")?; + } for (i, elem) in self.iter().enumerate() { if i > 0 { - write!(f, ", ")?; + write!(f, ",{}", if f.alternate() { "\n " } else { " " })?; } Binary::fmt(elem, f)?; } + if f.alternate() { + write!(f, ",\n")?; + } write!(f, "]") } } @@ -1325,7 +1331,20 @@ where { #[allow(clippy::missing_inline_in_public_items)] fn fmt(&self, f: &mut Formatter) -> core::fmt::Result { - core::fmt::Debug::fmt(self.as_slice(), f) + write!(f, "[")?; + if f.alternate() { + write!(f, "\n ")?; + } + for (i, elem) in self.iter().enumerate() { + if i > 0 { + write!(f, ",{}", if f.alternate() { "\n " } else { " " })?; + } + Debug::fmt(elem, f)?; + } + if f.alternate() { + write!(f, ",\n")?; + } + write!(f, "]") } } @@ -1336,12 +1355,18 @@ where #[allow(clippy::missing_inline_in_public_items)] fn fmt(&self, f: &mut Formatter) -> core::fmt::Result { write!(f, "[")?; + if f.alternate() { + write!(f, "\n ")?; + } for (i, elem) in self.iter().enumerate() { if i > 0 { - write!(f, ", ")?; + write!(f, ",{}", if f.alternate() { "\n " } else { " " })?; } Display::fmt(elem, f)?; } + if f.alternate() { + write!(f, ",\n")?; + } write!(f, "]") } } @@ -1353,12 +1378,18 @@ where #[allow(clippy::missing_inline_in_public_items)] fn fmt(&self, f: &mut Formatter) -> core::fmt::Result { write!(f, "[")?; + if f.alternate() { + write!(f, "\n ")?; + } for (i, elem) in self.iter().enumerate() { if i > 0 { - write!(f, ", ")?; + write!(f, ",{}", if f.alternate() { "\n " } else { " " })?; } LowerExp::fmt(elem, f)?; } + if f.alternate() { + write!(f, ",\n")?; + } write!(f, "]") } } @@ -1370,12 +1401,18 @@ where #[allow(clippy::missing_inline_in_public_items)] fn fmt(&self, f: &mut Formatter) -> core::fmt::Result { write!(f, "[")?; + if f.alternate() { + write!(f, "\n ")?; + } for (i, elem) in self.iter().enumerate() { if i > 0 { - write!(f, ", ")?; + write!(f, ",{}", if f.alternate() { "\n " } else { " " })?; } LowerHex::fmt(elem, f)?; } + if f.alternate() { + write!(f, ",\n")?; + } write!(f, "]") } } @@ -1387,12 +1424,18 @@ where #[allow(clippy::missing_inline_in_public_items)] fn fmt(&self, f: &mut Formatter) -> core::fmt::Result { write!(f, "[")?; + if f.alternate() { + write!(f, "\n ")?; + } for (i, elem) in self.iter().enumerate() { if i > 0 { - write!(f, ", ")?; + write!(f, ",{}", if f.alternate() { "\n " } else { " " })?; } Octal::fmt(elem, f)?; } + if f.alternate() { + write!(f, ",\n")?; + } write!(f, "]") } } @@ -1404,12 +1447,18 @@ where #[allow(clippy::missing_inline_in_public_items)] fn fmt(&self, f: &mut Formatter) -> core::fmt::Result { write!(f, "[")?; + if f.alternate() { + write!(f, "\n ")?; + } for (i, elem) in self.iter().enumerate() { if i > 0 { - write!(f, ", ")?; + write!(f, ",{}", if f.alternate() { "\n " } else { " " })?; } Pointer::fmt(elem, f)?; } + if f.alternate() { + write!(f, ",\n")?; + } write!(f, "]") } } @@ -1421,12 +1470,18 @@ where #[allow(clippy::missing_inline_in_public_items)] fn fmt(&self, f: &mut Formatter) -> core::fmt::Result { write!(f, "[")?; + if f.alternate() { + write!(f, "\n ")?; + } for (i, elem) in self.iter().enumerate() { if i > 0 { - write!(f, ", ")?; + write!(f, ",{}", if f.alternate() { "\n " } else { " " })?; } UpperExp::fmt(elem, f)?; } + if f.alternate() { + write!(f, ",\n")?; + } write!(f, "]") } } @@ -1438,12 +1493,18 @@ where #[allow(clippy::missing_inline_in_public_items)] fn fmt(&self, f: &mut Formatter) -> core::fmt::Result { write!(f, "[")?; + if f.alternate() { + write!(f, "\n ")?; + } for (i, elem) in self.iter().enumerate() { if i > 0 { - write!(f, ", ")?; + write!(f, ",{}", if f.alternate() { "\n " } else { " " })?; } UpperHex::fmt(elem, f)?; } + if f.alternate() { + write!(f, ",\n")?; + } write!(f, "]") } }