1use std::rc::Rc;
2use std::sync::Arc;
3
4pub unsafe trait IGetMutUnchecked<T: ?Sized>{
8 #[allow(clippy::mut_from_ref)]
12 unsafe fn get_mut_unchecked(&self)->&mut T;
13}
14
15unsafe impl <T: ?Sized> IGetMutUnchecked<T> for crate::Arc::SharedPtr<T> {
16 unsafe fn get_mut_unchecked(&self) -> &mut T {
17 &mut *(Arc::<T>::as_ptr(&**self) as *mut T)
18 }
19}
20
21unsafe impl <T: ?Sized> IGetMutUnchecked<T> for crate::Rc::SharedPtr<T> {
22 unsafe fn get_mut_unchecked(&self) -> &mut T {
23 &mut *(Rc::<T>::as_ptr(&**self) as *mut T)
24 }
25}