pub enum SessionHolder {
Host(HostSandboxSession),
Gamma(GammaSession),
Beta(BetaSession),
}Expand description
Active VM / sandbox backend for one REPL or script run.
Variants§
Host(HostSandboxSession)
Gamma(GammaSession)
γ: Lima + host workspace sync (Unix only).
Beta(BetaSession)
β: JSON-lines IPC to devshell-vm (Unix socket or TCP; beta-vm feature).
Implementations§
Source§impl SessionHolder
impl SessionHolder
Sourcepub fn try_from_config(config: &VmConfig) -> Result<Self, VmError>
pub fn try_from_config(config: &VmConfig) -> Result<Self, VmError>
Build session from config.
§Errors
On Unix, DEVSHELL_VM_BACKEND=lima uses GammaSession; fails with VmError::Lima if limactl is missing.
On non-Unix, lima returns VmError::BackendNotImplemented.
pub fn ensure_ready(&mut self, vfs: &Vfs, vfs_cwd: &str) -> Result<(), VmError>
pub fn run_rust_tool( &mut self, vfs: &mut Vfs, vfs_cwd: &str, program: &str, args: &[String], ) -> Result<ExitStatus, VmError>
pub fn shutdown(&mut self, vfs: &mut Vfs, vfs_cwd: &str) -> Result<(), VmError>
Sourcepub fn guest_primary_gamma_mut(&mut self) -> Option<&mut GammaSession>
pub fn guest_primary_gamma_mut(&mut self) -> Option<&mut GammaSession>
When γ is in guest-primary mode (WorkspaceMode::Guest), returns the session for direct guest FS ops.
Returns None for host sandbox, β, or Mode S γ (push/pull sync).
Sourcepub fn guest_primary_fs_ops_mut(
&mut self,
) -> Option<(&mut dyn GuestFsOps, String)>
pub fn guest_primary_fs_ops_mut( &mut self, ) -> Option<(&mut dyn GuestFsOps, String)>
γ or β guest-primary: GuestFsOps + guest mount for crate::devshell::workspace::logical_path_to_guest.
Returns None for host sandbox, Mode S sync, or non–guest-primary sessions.
Mount is owned so the returned trait object does not alias a borrow of the session.
Sourcepub fn is_guest_primary(&self) -> bool
pub fn is_guest_primary(&self) -> bool
true when any VM session runs in guest-primary mode (γ or β: no VFS↔host project-tree sync).
Sourcepub fn is_guest_primary_gamma(&self) -> bool
pub fn is_guest_primary_gamma(&self) -> bool
true when γ runs in guest-primary mode (no VFS↔host project-tree sync).
Sourcepub fn is_host_only(&self) -> bool
pub fn is_host_only(&self) -> bool
true when using the host temp sandbox (HostSandboxSession) rather than γ/β.
Sourcepub fn exec_lima_interactive_shell(&self) -> Error
pub fn exec_lima_interactive_shell(&self) -> Error
Replace this process with an interactive limactl shell (bash -l) under the guest workspace mount.
On success, does not return. On failure, returns the std::io::Error from std::os::unix::process::CommandExt::exec.