From 2f4032b64a8a88846100b5d4e4aafb35d1551b74 Mon Sep 17 00:00:00 2001 From: raj_mathe Date: Fri, 8 Apr 2022 17:07:03 +0200 Subject: [PATCH] master > master: code-rust - minor --- code/rust/src/core/utils.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/code/rust/src/core/utils.rs b/code/rust/src/core/utils.rs index 9cc015a..8ce35d5 100644 --- a/code/rust/src/core/utils.rs +++ b/code/rust/src/core/utils.rs @@ -31,7 +31,7 @@ pub fn min(x: T, y: T) -> T // METHODS Vectors // ---------------------------------------------------------------- -pub fn restrict(x: &mut Vec, i: usize, j: usize) -> Vec +pub fn restrict(x: &Vec, i: usize, j: usize) -> Vec where T: Clone { return x[i..j].iter() @@ -39,17 +39,23 @@ pub fn restrict(x: &mut Vec, i: usize, j: usize) -> Vec .collect::>(); } -pub fn remove_last(x: &mut Vec) -> Vec +pub fn remove_last(x: &Vec) -> Vec where T: Clone { let n = x.len(); + if n == 0 { + return Vec::::new(); + } return restrict::(x, 0, n-1); } #[allow(dead_code)] -pub fn remove_first(x: &mut Vec) -> Vec +pub fn remove_first(x: &Vec) -> Vec where T: Clone { let n = x.len(); + if n == 0 { + return Vec::::new(); + } return restrict::(x, 0, n); }