From 26cf18fc152623dda06fbec53a17c82ef6486463 Mon Sep 17 00:00:00 2001 From: Ritchie Vink Date: Wed, 2 Feb 2022 09:55:52 +0100 Subject: [PATCH] elide bounds check --- src/buffer/immutable.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/buffer/immutable.rs b/src/buffer/immutable.rs index 93ca7e41116..ec67febbe9f 100644 --- a/src/buffer/immutable.rs +++ b/src/buffer/immutable.rs @@ -85,7 +85,13 @@ impl Buffer { /// Returns the byte slice stored in this buffer #[inline] pub fn as_slice(&self) -> &[T] { - &self.data[self.offset..self.offset + self.length] + // Safety: + // invariant of this struct `offset + length <= data.len()` + debug_assert!(self.offset + self.length <= self.data.len()); + unsafe { + self.data + .get_unchecked(self.offset..self.offset + self.length) + } } /// Returns a new [Buffer] that is a slice of this buffer starting at `offset`.