pub struct UninitializedSandbox { /* private fields */ }Expand description
A preliminary sandbox that represents allocated memory and registered host functions, but has not yet created the underlying virtual machine.
This struct holds the configuration and setup needed for a sandbox without actually creating the VM. It allows you to:
- Set up memory layout and load guest binary data
- Register host functions that will be available to the guest
- Configure sandbox settings before VM creation
The virtual machine is not created until you call evolve to transform
this into an initialized MultiUseSandbox.
Implementations§
Source§impl UninitializedSandbox
impl UninitializedSandbox
Sourcepub fn new<'a, 'b>(
env: impl Into<GuestEnvironment<'a, 'b>>,
cfg: Option<SandboxConfiguration>,
) -> Result<Self>
pub fn new<'a, 'b>( env: impl Into<GuestEnvironment<'a, 'b>>, cfg: Option<SandboxConfiguration>, ) -> Result<Self>
Creates a new uninitialized sandbox for the given guest environment.
The guest binary can be provided as either a file path or memory buffer.
An optional configuration can customize memory sizes and sandbox settings.
After creation, register host functions using register
before calling evolve to complete initialization and create the VM.
Sourcepub fn evolve(self) -> Result<MultiUseSandbox>
pub fn evolve(self) -> Result<MultiUseSandbox>
Creates and initializes the virtual machine, transforming this into a ready-to-use sandbox.
This method consumes the UninitializedSandbox and performs the final initialization
steps to create the underlying virtual machine. Once evolved, the resulting
MultiUseSandbox can execute guest code and handle function calls.
Returns the total size of the sandbox shared memory region in bytes.
This is useful for placing file mappings at guest physical addresses that don’t overlap the primary shared memory slot.
Sourcepub fn set_max_guest_log_level(&mut self, log_level: LevelFilter)
pub fn set_max_guest_log_level(&mut self, log_level: LevelFilter)
Sets the maximum log level for guest code execution.
If not set, the log level is determined by the RUST_LOG environment variable,
defaulting to LevelFilter::Error if unset.