From 50e1e0ae47138e73bd2a8e8da5ccfa1535e36fe3 Mon Sep 17 00:00:00 2001 From: Rob Walker Date: Fri, 27 Jul 2018 11:27:52 -0700 Subject: [PATCH] use rust's rotate (in place, yay!) --- src/bank.rs | 29 +++-------------------------- 1 file changed, 3 insertions(+), 26 deletions(-) diff --git a/src/bank.rs b/src/bank.rs index 68d49b11b4..3b9994c4d4 100644 --- a/src/bank.rs +++ b/src/bank.rs @@ -434,11 +434,9 @@ impl Bank { let entry_count = 2 + self.process_blocks(entries, &mut tail, &mut tail_idx)?; // check f we need to rotate tail - let tail = if tail.len() == WINDOW_SIZE as usize { - rotate_vector(tail, tail_idx) - } else { - tail - }; + if tail.len() == WINDOW_SIZE as usize { + tail.rotate_left(tail_idx) + } Ok((entry_count, tail)) } @@ -541,17 +539,6 @@ impl Bank { } } -fn rotate_vector(v: Vec, at: usize) -> Vec { - if at != 0 { - let mut ret = Vec::with_capacity(v.len()); - ret.extend_from_slice(&v[at..]); - ret.extend_from_slice(&v[0..at]); - ret - } else { - v - } -} - #[cfg(test)] mod tests { use super::*; @@ -880,14 +867,4 @@ mod tests { assert_eq!(bank.get_balance(&mint.pubkey()), 1); } - #[test] - fn test_rotate_vector() { - let expect = vec![1, 2, 3, 4]; - - assert_eq!(rotate_vector(vec![4, 1, 2, 3], 1), expect); - assert_eq!(rotate_vector(vec![1, 2, 3, 4], 0), expect); - assert_eq!(rotate_vector(vec![2, 3, 4, 1], 3), expect); - assert_eq!(rotate_vector(vec![3, 4, 1, 2], 2), expect); - } - }