Skip to main content

WorkspaceBackend

Trait WorkspaceBackend 

Source
pub trait WorkspaceBackend {
    // Required methods
    fn logical_cwd(&self) -> String;
    fn set_logical_cwd(
        &mut self,
        path: &str,
    ) -> Result<(), WorkspaceBackendError>;
    fn read_file(
        &mut self,
        path: &str,
    ) -> Result<Vec<u8>, WorkspaceBackendError>;
    fn write_file(
        &mut self,
        path: &str,
        data: &[u8],
    ) -> Result<(), WorkspaceBackendError>;
    fn list_dir(
        &mut self,
        path: &str,
    ) -> Result<Vec<String>, WorkspaceBackendError>;
    fn mkdir(&mut self, path: &str) -> Result<(), WorkspaceBackendError>;
    fn remove(&mut self, path: &str) -> Result<(), WorkspaceBackendError>;
    fn exists(&mut self, path: &str) -> Result<bool, WorkspaceBackendError>;
    fn try_resolve_guest_path(
        &self,
        logical_path: &str,
    ) -> Result<String, WorkspaceBackendError>;
    fn run_rust_tool(
        &mut self,
        vm_session: &mut SessionHolder,
        program: &str,
        args: &[String],
    ) -> Result<ExitStatus, WorkspaceBackendError>;
}
Expand description

Virtual workspace for devshell: Mode S (memory) or Mode P (guest-primary).

Required Methods§

Source

fn logical_cwd(&self) -> String

Source

fn set_logical_cwd(&mut self, path: &str) -> Result<(), WorkspaceBackendError>

Source

fn read_file(&mut self, path: &str) -> Result<Vec<u8>, WorkspaceBackendError>

Source

fn write_file( &mut self, path: &str, data: &[u8], ) -> Result<(), WorkspaceBackendError>

Source

fn list_dir(&mut self, path: &str) -> Result<Vec<String>, WorkspaceBackendError>

Source

fn mkdir(&mut self, path: &str) -> Result<(), WorkspaceBackendError>

Source

fn remove(&mut self, path: &str) -> Result<(), WorkspaceBackendError>

Source

fn exists(&mut self, path: &str) -> Result<bool, WorkspaceBackendError>

Source

fn try_resolve_guest_path( &self, logical_path: &str, ) -> Result<String, WorkspaceBackendError>

Mode P: logical path → guest absolute path. Mode S: WorkspaceBackendError::ModeSOnly.

Source

fn run_rust_tool( &mut self, vm_session: &mut SessionHolder, program: &str, args: &[String], ) -> Result<ExitStatus, WorkspaceBackendError>

Run rustup / cargo (Mode S: sync VFS↔host/VM). Mode P skeleton: WorkspaceBackendError::Unsupported.

Implementors§