pub(crate) struct MutDom<T>where
T: DomObject,{
val: UnsafeCell<Dom<T>>,
}Expand description
A holder that provides interior mutability for GC-managed values such as
Dom<T>. Essentially a Cell<Dom<T>>, but safer.
This should only be used as a field in other DOM objects; see warning
on Dom<T>.
Fields§
§val: UnsafeCell<Dom<T>>Implementations§
Source§impl<T> MutDom<T>where
T: DomObject,
impl<T> MutDom<T>where
T: DomObject,
Sourcepub fn get_unrooted<'a>(&self, _: &'a NoGC) -> UnrootedDom<'a, T>
pub fn get_unrooted<'a>(&self, _: &'a NoGC) -> UnrootedDom<'a, T>
Get the DomObject without rooting it as an UnrootedDom. This is safe as
the return value shares the lifetime of the provided NoGC This implies that
while the UnrootedDom is alive, garbage collection will not happen.
Trait Implementations§
Source§impl<T> MallocSizeOf for MutDom<T>where
T: DomObject,
impl<T> MallocSizeOf for MutDom<T>where
T: DomObject,
Source§fn size_of(&self, _ops: &mut MallocSizeOfOps) -> usize
fn size_of(&self, _ops: &mut MallocSizeOfOps) -> usize
Measure the heap usage of all descendant heap-allocated structures, but
not the space taken up by the value itself.
Auto Trait Implementations§
impl<T> !Freeze for MutDom<T>
impl<T> !RefUnwindSafe for MutDom<T>
impl<T> !Send for MutDom<T>
impl<T> !Sync for MutDom<T>
impl<T> Unpin for MutDom<T>
impl<T> UnsafeUnpin for MutDom<T>
impl<T> UnwindSafe for MutDom<T>where
T: RefUnwindSafe,
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
Source§impl<T> Filterable for T
impl<T> Filterable for T
Source§fn filterable(
self,
filter_name: &'static str,
) -> RequestFilterDataProvider<T, fn(DataRequest<'_>) -> bool>
fn filterable( self, filter_name: &'static str, ) -> RequestFilterDataProvider<T, fn(DataRequest<'_>) -> bool>
Creates a filterable data provider with the given name for debugging. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> MaybeBoxed<Box<T>> for T
impl<T> MaybeBoxed<Box<T>> for T
Source§fn maybe_boxed(self) -> Box<T>
fn maybe_boxed(self) -> Box<T>
Convert
Source§impl<T> MaybeBoxed<T> for T
impl<T> MaybeBoxed<T> for T
Source§fn maybe_boxed(self) -> T
fn maybe_boxed(self) -> T
Convert