pub(crate) struct NoGC(());Expand description
Token that ensures that no GC can happen while it is alive.
This type is similar to &JSContext,
but it is used in cases where no actual context is needed.
For more info and examples see JSContext.
This type can be obtained from JSContext (and will be bounded to it) or constructed from thin air (unsafe).
ⓘ
fn f() {
// safe construction is not possible
mozjs::context::NoGC(());
}Tuple Fields§
§0: ()Implementations§
Source§impl NoGC
impl NoGC
Sourcepub unsafe fn new() -> &'static NoGC
pub unsafe fn new() -> &'static NoGC
Creates new NoGC token from thin air.
This is more safe than constructing JSContext from thin air as the promise here (of no GC) is weaker, but one should still prefer passing NoGC down as an argument.
§Safety
One must ensure that no &mut JSContext is alive while NoGC is alive.
(having &JSContext is technically OK, but one should rather derive NoGC from it).
Auto Trait Implementations§
impl Freeze for NoGC
impl RefUnwindSafe for NoGC
impl Send for NoGC
impl Sync for NoGC
impl Unpin for NoGC
impl UnsafeUnpin for NoGC
impl UnwindSafe for NoGC
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