pub struct TokenMap<'a, T: ?Sized, U, F: FnOnce(TokenGuard<'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 immutable access.
Implementations§
Source§impl<'a, T: ?Sized, U, F: FnOnce(TokenGuard<'a, T, Token>) -> U, Token: TokenTrait<ComparisonMaySpuriouslyEq = True>, Cell: UnsafeTokenCellTrait<T, Token>> TokenMap<'a, T, U, F, Cell, Token, True>
impl<'a, T: ?Sized, U, F: FnOnce(TokenGuard<'a, T, Token>) -> U, Token: TokenTrait<ComparisonMaySpuriouslyEq = True>, Cell: UnsafeTokenCellTrait<T, Token>> TokenMap<'a, T, U, F, Cell, Token, True>
Sourcepub fn try_apply(
self,
token: &'a Token,
) -> Result<U, (Self, Token::ComparisonError)>
pub fn try_apply( self, token: &'a Token, ) -> Result<U, (Self, 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 Token) -> Uwhere
Token: TokenTrait<ComparisonError = Infallible>,
pub fn apply(self, token: &'a Token) -> Uwhere
Token: TokenTrait<ComparisonError = Infallible>,
Applies the operation.
Source§impl<'a, T: ?Sized, U, F: FnOnce(TokenGuard<'a, T, Token>) -> U, Token: TokenTrait<ComparisonMaySpuriouslyEq = False>, Cell: TokenCellTrait<T, Token>> TokenMap<'a, T, U, F, Cell, Token, False>
impl<'a, T: ?Sized, U, F: FnOnce(TokenGuard<'a, T, Token>) -> U, Token: TokenTrait<ComparisonMaySpuriouslyEq = False>, Cell: TokenCellTrait<T, Token>> TokenMap<'a, T, U, F, Cell, Token, False>
Sourcepub fn try_apply(
self,
token: &'a Token,
) -> Result<U, (Self, Token::ComparisonError)>
pub fn try_apply( self, token: &'a Token, ) -> Result<U, (Self, 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 Token) -> Uwhere
Token: TokenTrait<ComparisonError = Infallible>,
pub fn apply(self, token: &'a Token) -> Uwhere
Token: TokenTrait<ComparisonError = Infallible>,
Applies the operation.
Auto Trait Implementations§
impl<'a, T, U, F, Cell, Token, ComparisonMaySpuriouslyEq> Freeze for TokenMap<'a, T, U, F, Cell, Token, ComparisonMaySpuriouslyEq>
impl<'a, T, U, F, Cell, Token, ComparisonMaySpuriouslyEq> RefUnwindSafe for TokenMap<'a, T, U, F, Cell, Token, ComparisonMaySpuriouslyEq>where
F: RefUnwindSafe,
Cell: RefUnwindSafe + ?Sized,
U: RefUnwindSafe,
Token: RefUnwindSafe,
ComparisonMaySpuriouslyEq: RefUnwindSafe,
T: RefUnwindSafe + ?Sized,
impl<'a, T, U, F, Cell, Token, ComparisonMaySpuriouslyEq> Send for TokenMap<'a, T, U, F, Cell, Token, ComparisonMaySpuriouslyEq>
impl<'a, T, U, F, Cell, Token, ComparisonMaySpuriouslyEq> Sync for TokenMap<'a, T, U, F, Cell, Token, ComparisonMaySpuriouslyEq>
impl<'a, T, U, F, Cell, Token, ComparisonMaySpuriouslyEq> Unpin for TokenMap<'a, T, U, F, Cell, Token, ComparisonMaySpuriouslyEq>
impl<'a, T, U, F, Cell, Token, ComparisonMaySpuriouslyEq> UnsafeUnpin for TokenMap<'a, T, U, F, Cell, Token, ComparisonMaySpuriouslyEq>
impl<'a, T, U, F, Cell, Token, ComparisonMaySpuriouslyEq> UnwindSafe for TokenMap<'a, T, U, F, Cell, Token, ComparisonMaySpuriouslyEq>where
F: UnwindSafe,
Cell: RefUnwindSafe + ?Sized,
U: UnwindSafe,
Token: UnwindSafe,
ComparisonMaySpuriouslyEq: UnwindSafe,
T: RefUnwindSafe + ?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