Remove String::truncate()
Current implementation is unsafe because it doesn't check if `new_len` does lie on a char boundary.
This commit is contained in:
parent
2884146359
commit
e316c82eb5
|
@ -67,16 +67,6 @@ impl Buffer {
|
|||
self.len = new_len;
|
||||
}
|
||||
|
||||
/// Same as String::truncate
|
||||
///
|
||||
/// # Panics
|
||||
///
|
||||
/// This method panics if `new_len > self.len()`.
|
||||
pub(crate) fn truncate(&mut self, new_len: usize) {
|
||||
assert!(new_len <= self.len);
|
||||
self.len = new_len;
|
||||
}
|
||||
|
||||
/// Increase the length of buffer by `additional` bytes
|
||||
///
|
||||
/// # Safety
|
||||
|
|
|
@ -47,7 +47,7 @@ impl<'a, T: Render> Render for Upper<'a, T> {
|
|||
self.0.render(b)?;
|
||||
|
||||
let s = b.as_str()[old_len..].to_uppercase();
|
||||
b.truncate(old_len);
|
||||
unsafe { b._set_len(old_len) };
|
||||
b.push_str(&*s);
|
||||
Ok(())
|
||||
}
|
||||
|
@ -67,7 +67,7 @@ impl<'a, T: Render> Render for Lower<'a, T> {
|
|||
self.0.render(b)?;
|
||||
|
||||
let s = b.as_str()[old_len..].to_lowercase();
|
||||
b.truncate(old_len);
|
||||
unsafe { b._set_len(old_len) };
|
||||
b.push_str(&*s);
|
||||
Ok(())
|
||||
}
|
||||
|
@ -77,7 +77,7 @@ impl<'a, T: Render> Render for Lower<'a, T> {
|
|||
self.0.render_escaped(b)?;
|
||||
|
||||
let s = b.as_str()[old_len..].to_lowercase();
|
||||
b.truncate(old_len);
|
||||
unsafe { b._set_len(old_len) };
|
||||
b.push_str(&*s);
|
||||
Ok(())
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue