From cc55f669c441ee164175cf3734548e53d9a76ed4 Mon Sep 17 00:00:00 2001 From: Lokathor Date: Mon, 10 Feb 2020 20:14:20 -0700 Subject: [PATCH] Improve Write impl efficiency --- src/arrayvec.rs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/arrayvec.rs b/src/arrayvec.rs index 9ffe9e4..d45041c 100644 --- a/src/arrayvec.rs +++ b/src/arrayvec.rs @@ -1031,16 +1031,14 @@ where A::Item: From, { fn write_str(&mut self, s: &str) -> core::fmt::Result { - if self.len() + s.as_bytes().len() > A::CAPACITY { - return Err(core::fmt::Error) - } - let mut buf = [0; 4]; - for c in s.chars() { - for b in c.encode_utf8(&mut buf) { - self.push(*b); + if self.len() + s.as_bytes().len() <= A::CAPACITY { + for byte in s.bytes() { + self.push(A::Item::from(byte)) } + Ok(()) + } else { + Err(core::fmt::Error) } - Ok(()) } }