lock_cell

This crate provides the [LockCell<T>] and other supportings types.

A LockCell is a cell type which provides dynamic mutation using interior mutability. It is similar to [RefCell<T>], except that it only allows a single borrow type (a lock). Locking a LockCell allows mutating its contents freely.

A LockCell can only be used in a single threaded context - it cannot be sent or shared across different threads. Generally, a LockCell will be stored in a [Rc<T>] so that it can be shared.

Whether you use a LockCell or a RefCell depends on the structure and behavior of your program. Generally, if you have a lot of writers and readers, using a LockCell may be better, as it ensures that writers are less likely to be starved.

The Sync equivalent of a LockCell is [Mutex<T>].