fn rearrange(&mut self, bias: usize) {
    self.front.extend(self.rear.drain(..).rev());
    let half = self.front.len() / 2;
    let new_front = self.front.split_off(half + bias);
    std::mem::swap(&mut self.rear, &mut self.front);
    self.rear.reverse();
    self.front = new_front;
  }
/// arrange for `self.front` and `self.rear` to contain approximately the same
/// number of elements, while preserving the logical order of elements. this
/// should make the move/push/pop operations O(1) amortized, I believe.
arrange for `self.front` and `self.rear` to contain approximately the same
number of elements, while preserving the logical order of elements. this
should make the move/push/pop operations O(1) amortized, I believe.
arrange for ` self . front ` and ` self . rear ` to contain approximately the same number of elements while preserving the logical order of elements . this should make the move / push / pop operations O ( 1 ) amortized I believe .
fn rearrange(&mut self, bias: usize) {
    self.front.extend(self.rear.drain(..).rev());
    let half = self.front.len() / 2;
    let new_front = self.front.split_off(half + bias);
    std::mem::swap(&mut self.rear, &mut self.front);
    self.rear.reverse();
    self.front = new_front;
  }
fn rearrange ( & mut self , bias : usize ) { self . front . extend ( self . rear . drain ( .. ) . rev ( ) ) ; let half = self . front . len ( ) / 2 ; let new_front = self . front . split_off ( half + bias ) ; std :: mem :: swap ( & mut self . rear , & mut self . front ) ; self . rear . reverse ( ) ; self . front = new_front ; }
arrange for `self.front` and `self.rear` to contain approximately the same
number of elements, while preserving the logical order of elements.
arrange for ` self . front ` and ` self . rear ` to contain approximately the same number of elements while preserving the logical order of elements .
&mut self
bias
usize
&mut self
bias
usize