pub struct ExtensionRegion { /* private fields */ }Expand description
RAII guard for extension lifecycle with structured concurrency guarantees.
Wraps an ExtensionManager and ensures that the JS runtime thread is
shut down when the region exits. Provides:
- No orphaned tasks: the runtime thread exits on region close.
- Bounded cleanup: shutdown is capped by a configurable budget.
- Drop safety: best-effort shutdown if
shutdown()was not called.
Implementations§
Source§impl ExtensionRegion
impl ExtensionRegion
Sourcepub const fn new(manager: ExtensionManager) -> Self
pub const fn new(manager: ExtensionManager) -> Self
Create a new extension region with the default cleanup budget (5 s).
Sourcepub const fn with_budget(manager: ExtensionManager, budget: Duration) -> Self
pub const fn with_budget(manager: ExtensionManager, budget: Duration) -> Self
Create a region with a custom cleanup budget.
Sourcepub const fn manager(&self) -> &ExtensionManager
pub const fn manager(&self) -> &ExtensionManager
Access the inner ExtensionManager.
Sourcepub fn into_inner(self) -> ExtensionManager
pub fn into_inner(self) -> ExtensionManager
Consume the region and return the inner manager (caller takes responsibility for shutdown).
Trait Implementations§
Source§impl Debug for ExtensionRegion
impl Debug for ExtensionRegion
Auto Trait Implementations§
impl !Freeze for ExtensionRegion
impl RefUnwindSafe for ExtensionRegion
impl Send for ExtensionRegion
impl Sync for ExtensionRegion
impl Unpin for ExtensionRegion
impl UnsafeUnpin for ExtensionRegion
impl UnwindSafe for ExtensionRegion
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, _span: NoopSpan) -> Self
fn instrument(self, _span: NoopSpan) -> Self
Instruments this future with a span (no-op when disabled).
Source§fn in_current_span(self) -> Self
fn in_current_span(self) -> Self
Instruments this future with the current span (no-op when disabled).
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 more