pub struct Pass(/* private fields */);Expand description
A key for reading/writing to RwData
This key is necessary in order to prevent breakage of the number one rule of Rust: any number of shared references, or one exclusive reference.
When you call RwData::read, any call to RwData::write may
end up breaking this rule, and vice-versa, which is why this
struct is necessary.
One downside of this approach is that it is even more restrictive
than Rust’s rule of thumb, since that one is enforced on
individual instances, while this one is enforced on all
RwDatas. This (as far as i know) cannot be circumvented, as a
more advanced compile time checker (that distinguishes
RwData<T>s of different Ts, for example) does not seem
feasible without the use of unfinished features, which I am not
willing to use.
Do note that you can still ignore this if you want, by use of
read_unsafe and write_unsafe, but this might cause a panic
in Duat because of the RefCells under the hood.