# File Ouroboros.rb, line 219
  def swap( item1, item2 )
    last_i = @all.length-1
    o1i = item1._ouroboros_index
    o2i = item2._ouroboros_index

    @all[item2._ouroboros_index = o1i] = item2
    @all[item1._ouroboros_index = o2i] = item1
    item1.prev = @all[(o2i-1) % @size];
    item1.next = @all[(o2i+1) % @size];
    item2.prev = @all[(o1i-1) % @size];
    item2.next = @all[(o1i+1) % @size];
    item1.prev.next = item1.next.prev = item1;
    item2.prev.next = item2.next.prev = item2;
    
    @current = @all[ @current_index ]
    self
  end