A variant of `Vec`, with interior mutability, where one element may be borrowed mutably and several other elements may be borrowed immutably at the same time.
You would use this crate if:
- You need a `Vec` with interior mutability
- You only want mutable access to one element at a time
- You want immutable access to all other elements while an element is borrowed mutably
`VecCell` only stores two additional pieces of information:
- which element is currently borrowed mutably (accessible through `mut_borrow`)
- how many elements are borrowed immutably (accessible through `borrows`)
This has the advantage of putting all of its elements next to each other in memory, if their padding allows it, but has the disadvantage of having more restrictive rules than you'd expect:
To borrow an element mutably, no element must be borrowed mutably *or immutably*: