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.
Auto Trait Implementations§
impl Freeze for Pass
impl RefUnwindSafe for Pass
impl Send for Pass
impl Sync for Pass
impl Unpin for Pass
impl UnwindSafe for Pass
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more