Trait corundum::TxInSafe[][src]

pub unsafe auto trait TxInSafe { }

It is equal to UnwindSafe, but is used to ensure doubly that mutable references cannot go inside a transaction.

Safety

The user can safely specify a type as UnwindSafe, but TxInSafe is unsafe to implement. This warns the programmer that the non-existence of orphans is not guaranteed anymore.

Implementations on Foreign Types

impl TxInSafe for isize

impl<T> TxInSafe for [T] where
    T: TxInSafe

impl TxInSafe for [u8]

impl TxInSafe for char

impl TxInSafe for u128

impl TxInSafe for u16

impl TxInSafe for i128

impl TxInSafe for i16

impl TxInSafe for str

impl TxInSafe for f64

impl TxInSafe for u64

impl TxInSafe for u8

impl TxInSafe for i64

impl TxInSafe for i8

impl<T: ?Sized> TxInSafe for *const T where
    T: TxInSafe

impl<T> TxInSafe for *const [T] where
    T: TxInSafe

impl<T, const N: usize> TxInSafe for [T; N] where
    T: TxInSafe

impl TxInSafe for bool

impl TxInSafe for f32

impl TxInSafe for u32

impl TxInSafe for usize

impl TxInSafe for i32

impl<T: ?Sized> !TxInSafe for *mut T[src]

impl<T: ?Sized> !TxInSafe for &mut T[src]

impl<T: ?Sized> !TxInSafe for UnsafeCell<T>[src]

Loading content...

Implementors

impl TxInSafe for Chaperon[src]

impl<A: MemPool> !TxInSafe for Journal<A>[src]

impl<T, A: MemPool> TxInSafe for PMutex<T, A>[src]

impl<T: LooseTxInUnsafe> TxInSafe for AssertTxInSafe<T>[src]

impl<T: PSafe + ?Sized, A: MemPool> TxInSafe for PCell<T, A>[src]

impl<T: PSafe + ?Sized, A: MemPool> TxInSafe for PRefCell<T, A>[src]

impl<T: PSafe + ?Sized, A: MemPool> TxInSafe for Parc<T, A>[src]

impl<T: PSafe, A: MemPool> TxInSafe for RootCell<'_, T, A>[src]

impl<T: ?Sized, A: MemPool> TxInSafe for PrcBox<T, A>[src]

impl<T: ?Sized, A: MemPool> TxInSafe for corundum::prc::VWeak<T, A>[src]

impl<T: ?Sized, A: MemPool> TxInSafe for corundum::sync::VWeak<T, A>[src]

Loading content...

Auto implementors

impl !TxInSafe for SpinLock

impl TxInSafe for LogEnum

impl TxInSafe for Heap

impl TxInSafe for BuddyAlloc

impl<'a, T> TxInSafe for IterHelper<'a, T> where
    T: TxInSafe

impl<'a, T, A> !TxInSafe for MutexGuard<'a, T, A>

impl<'b, T, A> !TxInSafe for RefMut<'b, T, A>

impl<'b, T: ?Sized, A> TxInSafe for Ref<'b, T, A> where
    T: TxInSafe

impl<A> !TxInSafe for corundum::stm::vspd::Scratchpad<A>

impl<A> TxInSafe for Measure<A> where
    A: TxInSafe

impl<A> TxInSafe for Notifier<A> where
    A: TxInSafe

impl<A> TxInSafe for BuddyAlg<A> where
    A: TxInSafe

impl<A> TxInSafe for corundum::stm::pspd::Scratchpad<A> where
    A: TxInSafe

impl<A> TxInSafe for Log<A> where
    A: TxInSafe

impl<A> TxInSafe for String<A> where
    A: TxInSafe

impl<T> TxInSafe for IntoIteratorHelper<T> where
    T: TxInSafe

impl<T, A> !TxInSafe for LogNonNull<T, A>

impl<T, A> !TxInSafe for ParcInner<T, A>

impl<T, A> !TxInSafe for corundum::sync::Weak<T, A>

impl<T, A> TxInSafe for Zones<T, A> where
    A: TxInSafe,
    T: TxInSafe

impl<T, A> TxInSafe for TCell<T, A> where
    A: TxInSafe,
    T: TxInSafe

impl<T, A> TxInSafe for VCell<T, A> where
    A: TxInSafe,
    T: TxInSafe

impl<T, A> TxInSafe for Slice<T, A> where
    A: TxInSafe,
    T: TxInSafe

impl<T, A> TxInSafe for Vec<T, A> where
    A: TxInSafe,
    T: TxInSafe

impl<T, F = fn() -> T> !TxInSafe for LazyCell<T, F>

impl<T, const N: usize> TxInSafe for Ring<T, N> where
    T: TxInSafe

impl<T: ?Sized> TxInSafe for NonNull<T> where
    T: TxInSafe

impl<T: ?Sized, A> TxInSafe for Pbox<T, A> where
    A: TxInSafe,
    T: TxInSafe

impl<T: ?Sized, A> TxInSafe for Prc<T, A> where
    A: TxInSafe,
    T: TxInSafe

impl<T: ?Sized, A> TxInSafe for corundum::prc::Weak<T, A> where
    A: TxInSafe

impl<T: ?Sized, A> TxInSafe for Ptr<T, A> where
    A: TxInSafe,
    T: TxInSafe

Loading content...