Trait borrow_with_ref_obj::BorrowMutWithRefObj [−][src]
pub trait BorrowMutWithRefObj<'refr, T: 'refr + ?Sized> { type ReferenceMut: DerefMut<Target = T> + 'refr; fn borrow_mut(&'refr mut self) -> Self::ReferenceMut; }
Mutable borrower whose reference is an object.
See the crate documentation for more info.
Associated Types
type ReferenceMut: DerefMut<Target = T> + 'refr
Type of the reference object.
Unlike Borrow
and BorrowMut
, the type may be (and usually is)
different than the immutable version of the reference.
Required Methods
fn borrow_mut(&'refr mut self) -> Self::ReferenceMut
Borrows the object mutably.
Panics
May panic if borrowing a borrowed RefCell
, a poisoned Mutex
or RwLock
, or some other implementation-defined issue.
Implementations on Foreign Types
impl<'refr, 'main, T: 'refr + ?Sized> BorrowMutWithRefObj<'refr, T> for &'main mut T
[src]
impl<'refr, 'main, T: 'refr + ?Sized> BorrowMutWithRefObj<'refr, T> for &'main mut T
type ReferenceMut = &'refr mut T
fn borrow_mut(&'refr mut self) -> Self::ReferenceMut
[src]
fn borrow_mut(&'refr mut self) -> Self::ReferenceMut
impl<'refr, T: 'refr + ?Sized> BorrowMutWithRefObj<'refr, T> for Box<T>
[src]
impl<'refr, T: 'refr + ?Sized> BorrowMutWithRefObj<'refr, T> for Box<T>
type ReferenceMut = &'refr mut T
fn borrow_mut(&'refr mut self) -> Self::ReferenceMut
[src]
fn borrow_mut(&'refr mut self) -> Self::ReferenceMut
impl<'refr, T: 'refr + ?Sized> BorrowMutWithRefObj<'refr, T> for Rc<RefCell<T>>
[src]
impl<'refr, T: 'refr + ?Sized> BorrowMutWithRefObj<'refr, T> for Rc<RefCell<T>>
type ReferenceMut = RefMut<'refr, T>
fn borrow_mut(&'refr mut self) -> Self::ReferenceMut
[src]
fn borrow_mut(&'refr mut self) -> Self::ReferenceMut
impl<'refr, T: 'refr + ?Sized> BorrowMutWithRefObj<'refr, T> for Arc<Mutex<T>>
[src]
impl<'refr, T: 'refr + ?Sized> BorrowMutWithRefObj<'refr, T> for Arc<Mutex<T>>
type ReferenceMut = MutexGuard<'refr, T>
fn borrow_mut(&'refr mut self) -> Self::ReferenceMut
[src]
fn borrow_mut(&'refr mut self) -> Self::ReferenceMut
impl<'refr, T: 'refr + ?Sized> BorrowMutWithRefObj<'refr, T> for Arc<RwLock<T>>
[src]
impl<'refr, T: 'refr + ?Sized> BorrowMutWithRefObj<'refr, T> for Arc<RwLock<T>>
type ReferenceMut = RwLockWriteGuard<'refr, T>
fn borrow_mut(&'refr mut self) -> Self::ReferenceMut
[src]
fn borrow_mut(&'refr mut self) -> Self::ReferenceMut
Implementors
impl<'refr, T: 'refr + ?Sized> BorrowMutWithRefObj<'refr, T> for T type ReferenceMut = &'refr mut T;
impl<'refr, 'main, T: ?Sized + 'refr> BorrowMutWithRefObj<'refr, T> for BoxedBorrowMutWithRefObj<'main, T> type ReferenceMut = BoxedMutReference<'refr, T>;