From 1b274f777ba6e9ab122836a40efe66b4270e1529 Mon Sep 17 00:00:00 2001 From: Arthur Silva Date: Fri, 6 Sep 2024 09:52:03 +0200 Subject: [PATCH] fine tuning --- src/de.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/de.rs b/src/de.rs index c476fe8..2c89eeb 100644 --- a/src/de.rs +++ b/src/de.rs @@ -387,7 +387,7 @@ where self.read.discard(); } - #[cold] + #[inline] fn error(&self, reason: ErrorCode) -> Error { let offset = self.read.offset(); Error::syntax(reason, offset) @@ -449,6 +449,7 @@ where Ok(self.read.take_buffer()) } + #[inline] fn convert_str<'a>(buf: &'a [u8], offset: u64) -> Result<&'a str> { match str::from_utf8(buf) { Ok(s) => Ok(s), @@ -456,6 +457,7 @@ where } } + #[inline] fn parse_str(&mut self, len: Option, visitor: V) -> Result where V: de::Visitor<'de>, @@ -524,6 +526,7 @@ where self.recursion_checked(|de| de.parse_value::<_, Valid>(visitor)) } + #[inline] fn recursion_checked(&mut self, f: F) -> Result where F: FnOnce(&mut Deserializer) -> Result, @@ -629,6 +632,7 @@ where }) } + #[inline] fn parse_float(&mut self, magnitude: u8) -> Result { let mut buf = [0; 8]; let bytes = 1 << (magnitude - 1); @@ -752,7 +756,6 @@ where // Major type 7: floating-point numbers and other simple data types that need no content 0xf4..=0xf5 if Valid::BOOL => visitor.visit_bool(byte == 0xf5), 0xf6..=0xf7 if Valid::NULL => visitor.visit_unit(), - // 0xf8 => Err(self.error(ErrorCode::UnassignedCode)), 0xf9..=0xfb if Valid::FLOAT => { let value = self.parse_float(byte - 0xf9 + 2)?; visitor.visit_f64(value)