pub struct RefMut<'b, T: ?Sized, Tk: Token + ?Sized = BoxToken> { /* private fields */ }
Expand description
A wrapper type for a mutably borrowed value from a TokenRefCell
.
The token can be reused for further borrowing.
Implementations§
Source§impl<'b, T: ?Sized, Tk: Token + ?Sized> RefMut<'b, T, Tk>
impl<'b, T: ?Sized, Tk: Token + ?Sized> RefMut<'b, T, Tk>
Sourcepub fn reborrow_mut<U: ?Sized>(
&mut self,
cell: impl FnOnce(&mut T) -> &TokenRefCell<U, Tk>,
) -> RefMut<'_, U, Tk>
pub fn reborrow_mut<U: ?Sized>( &mut self, cell: impl FnOnce(&mut T) -> &TokenRefCell<U, Tk>, ) -> RefMut<'_, U, Tk>
Uses borrowed token exclusive reference to reborrow a TokenRefCell
.
§Panics
Sourcepub fn try_reborrow_mut<U: ?Sized>(
&mut self,
cell: impl FnOnce(&mut T) -> &TokenRefCell<U, Tk>,
) -> Result<RefMut<'_, U, Tk>, BorrowMutError>
pub fn try_reborrow_mut<U: ?Sized>( &mut self, cell: impl FnOnce(&mut T) -> &TokenRefCell<U, Tk>, ) -> Result<RefMut<'_, U, Tk>, BorrowMutError>
Uses borrowed token exclusive reference to reborrow a TokenRefCell
.
Sourcepub fn reborrow_opt_mut<U: ?Sized>(
&mut self,
cell: impl FnOnce(&mut T) -> Option<&TokenRefCell<U, Tk>>,
) -> Option<RefMut<'_, U, Tk>>
pub fn reborrow_opt_mut<U: ?Sized>( &mut self, cell: impl FnOnce(&mut T) -> Option<&TokenRefCell<U, Tk>>, ) -> Option<RefMut<'_, U, Tk>>
Uses borrowed token exclusive reference to optionally reborrow a TokenRefCell
.
§Panics
Sourcepub fn try_reborrow_opt_mut<U: ?Sized>(
&mut self,
cell: impl FnOnce(&mut T) -> Option<&TokenRefCell<U, Tk>>,
) -> Option<Result<RefMut<'_, U, Tk>, BorrowMutError>>
pub fn try_reborrow_opt_mut<U: ?Sized>( &mut self, cell: impl FnOnce(&mut T) -> Option<&TokenRefCell<U, Tk>>, ) -> Option<Result<RefMut<'_, U, Tk>, BorrowMutError>>
Uses borrowed token exclusive reference to optionally reborrow a TokenRefCell
.
Sourcepub fn reborrow_stateful_mut<'a, S>(
&'a mut self,
state: impl FnOnce(&'a mut T) -> S,
) -> ReborrowMut<'a, S, Tk>
pub fn reborrow_stateful_mut<'a, S>( &'a mut self, state: impl FnOnce(&'a mut T) -> S, ) -> ReborrowMut<'a, S, Tk>
Wraps the borrowed token exclusive reference into a stateful ReborrowMut
instance.
It can be used for example to reborrow cells from an iterator.
Examples found in repository?
examples/graph.rs (line 46)
40 pub fn remove_node(&mut self, id: NodeId) -> bool {
41 let Some(node) = self.nodes.remove(&id) else {
42 return false;
43 };
44 let mut node_mut = node.borrow_mut(&mut self.token);
45 let mut reborrow_mut =
46 node_mut.reborrow_stateful_mut(|node| node.edges.values().map(AsRef::as_ref));
47 while let Some(mut other) = reborrow_mut.reborrow_opt_mut(|edges| edges.next()) {
48 other.edges.remove(&id);
49 }
50 true
51 }
Trait Implementations§
Auto Trait Implementations§
impl<'b, T, Tk> Freeze for RefMut<'b, T, Tk>
impl<'b, T, Tk> RefUnwindSafe for RefMut<'b, T, Tk>
impl<'b, T, Tk> Send for RefMut<'b, T, Tk>
impl<'b, T, Tk> Sync for RefMut<'b, T, Tk>
impl<'b, T, Tk> Unpin for RefMut<'b, T, Tk>
impl<'b, T, Tk = BoxToken> !UnwindSafe for RefMut<'b, T, Tk>
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