Merge pull request #170 from c410-f3r/patch-1
Impl TryFrom<fmt::Arguments<'a>> for ArrayString
This commit is contained in:
@@ -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)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -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");
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user