From 954616c824a1093da53d7371742ed2b223244e80 Mon Sep 17 00:00:00 2001 From: Bertrand Bonnefoy-Claudet Date: Thu, 26 Jul 2018 11:42:45 +0200 Subject: [PATCH] Allow index of split_off to equal length of vector This makes it similar to the primitive slice `split_at` from the standard library (see https://doc.rust-lang.org/std/primitive.slice.html#method.split_at). --- src/vector.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/vector.rs b/src/vector.rs index ab73b8d..7d0e55a 100644 --- a/src/vector.rs +++ b/src/vector.rs @@ -776,7 +776,7 @@ impl Vector { /// # } /// ``` pub fn split_off(&mut self, index: usize) -> Self { - assert!(index < self.len()); + assert!(index <= self.len()); let mut local_index = index; @@ -1832,7 +1832,7 @@ mod test { #[test] fn split(ref vec in vec(i32::ANY, 1..2000), split_pos in usize::ANY) { - let split_index = split_pos % vec.len(); + let split_index = split_pos % (vec.len() + 1); let mut left = Vector::from_iter(vec.iter().cloned()); let right = left.split_off(split_index); assert_eq!(left.len(), split_index);