Просмотр исходного кода

deserialize_str: don't create error object in okay case

Justin Tracey 2 лет назад
Родитель
Сommit
8807988f1d
1 измененных файлов с 3 добавлено и 4 удалено
  1. 3 4
      src/lib.rs

+ 3 - 4
src/lib.rs

@@ -280,10 +280,9 @@ fn deserialize_u32(buf: &[u8]) -> Result<(u32, &[u8]), Error> {
 fn deserialize_str(buf: &[u8]) -> Result<(&str, &[u8]), Error> {
     let (strlen, buf) = deserialize_u32(buf)?;
     let strlen = strlen as usize;
-    let strbytes = buf.get(..strlen).ok_or(Error::MalformedSerialization(
-        buf.to_vec(),
-        std::backtrace::Backtrace::capture(),
-    ))?;
+    let strbytes = buf.get(..strlen).ok_or_else(|| {
+        Error::MalformedSerialization(buf.to_vec(), std::backtrace::Backtrace::capture())
+    })?;
     Ok((std::str::from_utf8(strbytes)?, &buf[strlen..]))
 }