pub struct TokenMapMut<'a, T: ?Sized, U, F: FnOnce(TokenGuardMut<'a, T, Token>) -> U, Cell: ?Sized, Token: TokenTrait<ComparisonMaySpuriouslyEq = ComparisonMaySpuriouslyEq> + 'a, ComparisonMaySpuriouslyEq> { /* private fields */ }Expand description
An operation waiting to be applied onto a cell by providing a proof of mutable access.
Implementations§
Source§impl<'a, T: ?Sized, U, F: FnOnce(TokenGuardMut<'a, T, Token>) -> U, Token: TokenTrait<ComparisonMaySpuriouslyEq = False>, Cell: TokenCellTrait<T, Token>> TokenMapMut<'a, T, U, F, Cell, Token, False>
impl<'a, T: ?Sized, U, F: FnOnce(TokenGuardMut<'a, T, Token>) -> U, Token: TokenTrait<ComparisonMaySpuriouslyEq = False>, Cell: TokenCellTrait<T, Token>> TokenMapMut<'a, T, U, F, Cell, Token, False>
Sourcepub fn try_apply(
self,
token: &'a mut Token,
) -> Result<U, Token::ComparisonError>
pub fn try_apply( self, token: &'a mut Token, ) -> Result<U, Token::ComparisonError>
Attempt to apply the operation.
§Errors
If the token comparison failed. Reaching this error is likely to be a fundamental error in your program.
Sourcepub fn apply(self, token: &'a mut Token) -> Uwhere
Token: TokenTrait<ComparisonError = Infallible>,
pub fn apply(self, token: &'a mut Token) -> Uwhere
Token: TokenTrait<ComparisonError = Infallible>,
Applies the operation.
Source§impl<'a, T: ?Sized, U, F: FnOnce(TokenGuardMut<'a, T, Token>) -> U, Token: TokenTrait<ComparisonMaySpuriouslyEq = True>, Cell: UnsafeTokenCellTrait<T, Token>> TokenMapMut<'a, T, U, F, Cell, Token, True>
impl<'a, T: ?Sized, U, F: FnOnce(TokenGuardMut<'a, T, Token>) -> U, Token: TokenTrait<ComparisonMaySpuriouslyEq = True>, Cell: UnsafeTokenCellTrait<T, Token>> TokenMapMut<'a, T, U, F, Cell, Token, True>
Sourcepub unsafe fn try_apply(
self,
token: &'a mut Token,
) -> Result<U, Token::ComparisonError>
pub unsafe fn try_apply( self, token: &'a mut Token, ) -> Result<U, Token::ComparisonError>
Sourcepub unsafe fn apply(self, token: &'a mut Token) -> Uwhere
Token: TokenTrait<ComparisonError = Infallible>,
pub unsafe fn apply(self, token: &'a mut Token) -> Uwhere
Token: TokenTrait<ComparisonError = Infallible>,
Applies the operation.
§Safety
token must refer to the exact same instance of Token as that which was used to call [Self::new].
Auto Trait Implementations§
impl<'a, T, U, F, Cell, Token, ComparisonMaySpuriouslyEq> Freeze for TokenMapMut<'a, T, U, F, Cell, Token, ComparisonMaySpuriouslyEq>
impl<'a, T, U, F, Cell, Token, ComparisonMaySpuriouslyEq> RefUnwindSafe for TokenMapMut<'a, T, U, F, Cell, Token, ComparisonMaySpuriouslyEq>where
&'a Cell: RefUnwindSafe,
F: RefUnwindSafe,
PhantomData<(&'a T, U, Token, ComparisonMaySpuriouslyEq)>: RefUnwindSafe,
T: ?Sized,
Cell: ?Sized,
impl<'a, T, U, F, Cell, Token, ComparisonMaySpuriouslyEq> Send for TokenMapMut<'a, T, U, F, Cell, Token, ComparisonMaySpuriouslyEq>
impl<'a, T, U, F, Cell, Token, ComparisonMaySpuriouslyEq> Sync for TokenMapMut<'a, T, U, F, Cell, Token, ComparisonMaySpuriouslyEq>
impl<'a, T, U, F, Cell, Token, ComparisonMaySpuriouslyEq> Unpin for TokenMapMut<'a, T, U, F, Cell, Token, ComparisonMaySpuriouslyEq>
impl<'a, T, U, F, Cell, Token, ComparisonMaySpuriouslyEq> UnsafeUnpin for TokenMapMut<'a, T, U, F, Cell, Token, ComparisonMaySpuriouslyEq>where
&'a Cell: UnsafeUnpin,
F: UnsafeUnpin,
PhantomData<(&'a T, U, Token, ComparisonMaySpuriouslyEq)>: UnsafeUnpin,
T: ?Sized,
Cell: ?Sized,
impl<'a, T, U, F, Cell, Token, ComparisonMaySpuriouslyEq> UnwindSafe for TokenMapMut<'a, T, U, F, Cell, Token, ComparisonMaySpuriouslyEq>where
&'a Cell: UnwindSafe,
F: UnwindSafe,
PhantomData<(&'a T, U, Token, ComparisonMaySpuriouslyEq)>: UnwindSafe,
T: ?Sized,
Cell: ?Sized,
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