diff options
author | 2024-04-24 08:23:39 -0400 | |
---|---|---|
committer | 2024-04-24 08:23:39 -0400 | |
commit | ce09d7d358ab1d1d31ed9d0b52a747c0a21ea401 (patch) | |
tree | 6e51d996073d099e7ffcf19c406efedc8fca131f /src/bytes.rs | |
parent | 9d3ec1cffb76141b4706bb289beced8b04ecac4a (diff) | |
download | bytes-ce09d7d358ab1d1d31ed9d0b52a747c0a21ea401.tar.gz bytes-ce09d7d358ab1d1d31ed9d0b52a747c0a21ea401.tar.zst bytes-ce09d7d358ab1d1d31ed9d0b52a747c0a21ea401.zip |
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()`.
Diffstat (limited to '')
-rw-r--r-- | src/bytes.rs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/bytes.rs b/src/bytes.rs index c3240ce..908cee9 100644 --- a/src/bytes.rs +++ b/src/bytes.rs @@ -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; |