vec_cell

Rust Vec with interior mutability which allows to take disjoint mutable references to its elements.

```rust use vec_cell::VecCell;

// Create VecCell. let vec_cell: VecCell = VecCell::new();

// Push elements to VecCell. veccell.push(0); veccell.push(1); vec_cell.push(2);

// Take immutable borrows to VecCell elements. { asserteq!(*veccell.borrow(0), 0); asserteq!(*veccell.borrow(1), 1); asserteq!(*veccell.borrow(2), 2); }

// Take disjoint mutable borrows to VecCell elements. { let borrowmut1 = &mut *veccell.borrowmut(1); let borrowmut2 = &mut *veccell.borrowmut(2);

*borrow_mut1 = 10;
*borrow_mut2 = 15;

}

// Pop elements from VecCell. asserteq!(veccell.pop(), 15); asserteq!(veccell.pop(), 10); asserteq!(veccell.pop(), 0); ```