use super::Encode;
impl Encode for char {
fn encode(&self, buf: &mut Vec<u8>) {
let beg = buf.len();
let max = 4 + 2;
unsafe {
buf.reserve(max);
buf.set_len(beg + max);
}
let len = {
let mut cur = std::io::Cursor::new(&mut buf[beg..]);
let _ = serde_json::to_writer(&mut cur, self);
cur.position()
} as usize;
unsafe { buf.set_len(beg + len); }
}
}
impl Encode for &str {
#[inline]
fn encode(&self, buf: &mut Vec<u8>) {
let beg = buf.len();
let max = self.len() * 2 + 2;
unsafe {
buf.reserve(max);
buf.set_len(beg + max);
}
let len = {
let mut cur = std::io::Cursor::new(&mut buf[beg..]);
let _ = serde_json::to_writer(&mut cur, self);
cur.position()
} as usize;
unsafe { buf.set_len(beg + len); }
}
}
impl Encode for String {
#[inline]
fn encode(&self, buf: &mut Vec<u8>) {
self.as_str().encode(buf)
}
}