use crate::leb128::{self, max_leb128_len};
use crate::serialize::{self, Encoder as _};
-use std::borrow::Cow;
use std::convert::TryInto;
use std::fs::File;
use std::io::{self, Write};
}
#[inline]
- fn read_str(&mut self) -> Cow<'_, str> {
+ fn read_str(&mut self) -> &str {
let len = self.read_usize();
let sentinel = self.data[self.position + len];
assert!(sentinel == STR_SENTINEL);
std::str::from_utf8_unchecked(&self.data[self.position..self.position + len])
};
self.position += len + 1;
- Cow::Borrowed(s)
+ s
}
#[inline]
fn read_f64(&mut self) -> f64;
fn read_f32(&mut self) -> f32;
fn read_char(&mut self) -> char;
- fn read_str(&mut self) -> Cow<'_, str>;
+ fn read_str(&mut self) -> &str;
fn read_raw_bytes_into(&mut self, s: &mut [u8]);
}
impl<D: Decoder> Decodable<D> for String {
fn decode(d: &mut D) -> String {
- d.read_str().into_owned()
+ d.read_str().to_owned()
}
}