Bytes::split_off - check fast path first (#693)

Follow up to https://github.com/tokio-rs/bytes/pull/689

* If `at == self.len()`, we already know `at <= self.len()`.
* If `at == 0`, we already know `at <= self.len()`.
This commit is contained in:
Brad Dunbar
2024-04-24 08:23:39 -04:00
committed by GitHub
parent 9d3ec1cffb
commit ce09d7d358
+7 -7
View File
@@ -385,13 +385,6 @@ impl Bytes {
/// Panics if `at > len`.
#[must_use = "consider Bytes::truncate if you don't need the other half"]
pub fn split_off(&mut self, at: usize) -> Self {
assert!(
at <= self.len(),
"split_off out of bounds: {:?} <= {:?}",
at,
self.len(),
);
if at == self.len() {
return Bytes::new();
}
@@ -400,6 +393,13 @@ impl Bytes {
return mem::replace(self, Bytes::new());
}
assert!(
at <= self.len(),
"split_off out of bounds: {:?} <= {:?}",
at,
self.len(),
);
let mut ret = self.clone();
self.len = at;