pub struct SandboxScope { /* private fields */ }Expand description
RAII scope for sandbox lifecycle management.
Creates sandboxes on demand via ensure(), destroys them on drop.
This ensures sandboxes are always cleaned up, even on error paths.
If sandboxes are disabled, all operations are no-ops.
Implementations§
Source§impl SandboxScope
impl SandboxScope
Sourcepub fn new(sandbox: Sandbox, ctx: RunContext) -> Self
pub fn new(sandbox: Sandbox, ctx: RunContext) -> Self
Create a new scope with no sandboxes.
Use ensure() to create sandboxes when needed.
Sourcepub fn ensure(&mut self, n: usize) -> Result<()>
pub fn ensure(&mut self, n: usize) -> Result<()>
Ensure sandboxes 0..n exist.
Creates any missing sandboxes in parallel. If sandboxes are disabled or n <= current count, this is a no-op.
On error or interrupt, newly created sandboxes are rolled back but previously existing sandboxes remain (they’ll be cleaned up on drop).
Sourcepub fn shutdown(&self) -> &Arc<AtomicBool>
pub fn shutdown(&self) -> &Arc<AtomicBool>
Access the shutdown flag.
Trait Implementations§
Source§impl Debug for SandboxScope
impl Debug for SandboxScope
Auto Trait Implementations§
impl Freeze for SandboxScope
impl !RefUnwindSafe for SandboxScope
impl Send for SandboxScope
impl Sync for SandboxScope
impl Unpin for SandboxScope
impl !UnwindSafe for SandboxScope
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> 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