Merge pull request #170 from c410-f3r/patch-1

Impl TryFrom<fmt::Arguments<'a>> for ArrayString
This commit is contained in:
bluss
2020-12-10 18:35:23 +01:00
committed by GitHub
2 changed files with 21 additions and 0 deletions
+14
View File
@@ -594,3 +594,17 @@ where
Ok(v) Ok(v)
} }
} }
impl<'a, A> TryFrom<fmt::Arguments<'a>> for ArrayString<A>
where
A: Array<Item = u8> + Copy
{
type Error = CapacityError<fmt::Error>;
fn try_from(f: fmt::Arguments<'a>) -> Result<Self, Self::Error> {
use fmt::Write;
let mut v = Self::new();
v.write_fmt(f).map_err(|e| CapacityError::new(e))?;
Ok(v)
}
}
+7
View File
@@ -686,3 +686,10 @@ fn test_extend_zst() {
assert_eq!(&array[..], &[Z; 5]); assert_eq!(&array[..], &[Z; 5]);
assert_eq!(array.len(), 5); assert_eq!(array.len(), 5);
} }
#[test]
fn test_try_from_argument() {
use core::convert::TryFrom;
let v = ArrayString::<[u8; 16]>::try_from(format_args!("Hello {}", 123)).unwrap();
assert_eq!(&v, "Hello 123");
}