Skip to main content

Workspace

Trait Workspace 

Source
pub trait Workspace:
    Send
    + Sync
    + Debug {
Show 42 methods // Required methods fn description(&self) -> String; fn root(&self) -> PathBuf; fn read_file<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn write_file<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, path: &'life1 str, content: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn create_dir_all<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn remove_file<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn exists<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn is_dir<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn list_dir<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Vec<DirEntry>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn walk_tree<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str, max_depth: usize, ) -> Pin<Box<dyn Future<Output = Result<Vec<String>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn find_files<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, pattern: &'life1 str, path: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<Vec<String>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn grep<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, pattern: &'life1 str, path: &'life2 str, include: Option<&'life3 str>, ) -> Pin<Box<dyn Future<Output = Result<Vec<GrepMatch>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait; fn exec<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, command: &'life1 str, cwd: Option<&'life2 str>, ) -> Pin<Box<dyn Future<Output = Result<CmdOutput>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; // Provided methods fn capabilities(&self) -> WorkspaceCapabilities { ... } fn resolved_backend_id(&self) -> Option<ResolvedBackendId> { ... } fn supports_change_sets(&self) -> bool { ... } fn apply_change_set<'life0, 'async_trait>( &'life0 self, _request: WorkspaceChangeSetRequest, ) -> Pin<Box<dyn Future<Output = Result<WorkspaceChangeSet>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait { ... } fn get_change_set<'life0, 'life1, 'async_trait>( &'life0 self, _id: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<WorkspaceChangeSet>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait { ... } fn revert_change_set<'life0, 'life1, 'async_trait>( &'life0 self, _id: &'life1 str, _conversation_id: Option<String>, ) -> Pin<Box<dyn Future<Output = Result<WorkspaceChangeSet>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait { ... } fn read_file_tail<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str, max_bytes: usize, ) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait { ... } fn read_file_bytes<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait { ... } fn write_file_bytes<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, path: &'life1 str, content: &'life2 [u8], ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait { ... } fn file_revision<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Option<String>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait { ... } fn read_file_versioned<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<VersionedFile>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait { ... } fn write_file_if_match<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, path: &'life1 str, content: &'life2 [u8], if_match: Option<&'life3 str>, ) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait { ... } fn write_file_chunk<'life0, 'life1, 'async_trait>( &'life0 self, _path: &'life1 str, _offset: u64, _content: Bytes, _final_chunk: bool, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait { ... } fn remove_file_if_match<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, path: &'life1 str, if_match: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait { ... } fn file_size<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Option<u64>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait { ... } fn list_dir_with_options<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str, _options: FileVisibilityOptions, ) -> Pin<Box<dyn Future<Output = Result<Vec<DirEntry>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait { ... } fn walk_tree_with_options<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str, max_depth: usize, _options: FileVisibilityOptions, ) -> Pin<Box<dyn Future<Output = Result<Vec<String>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait { ... } fn find_files_with_options<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, pattern: &'life1 str, path: &'life2 str, _options: FileVisibilityOptions, ) -> Pin<Box<dyn Future<Output = Result<Vec<String>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait { ... } fn grep_with_options<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, pattern: &'life1 str, path: &'life2 str, include: Option<&'life3 str>, _options: FileVisibilityOptions, ) -> Pin<Box<dyn Future<Output = Result<Vec<GrepMatch>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait { ... } fn resource_usage<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<WorkspaceResourceUsage>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait { ... } fn exec_detached<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, command: &'life1 str, cwd: Option<&'life2 str>, _timeout_secs: u64, ) -> Pin<Box<dyn Future<Output = Result<CmdOutput>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait { ... } fn port_url<'life0, 'async_trait>( &'life0 self, port: u16, ) -> Pin<Box<dyn Future<Output = Result<PortUrl>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait { ... } fn port_url_with_ttl<'life0, 'async_trait>( &'life0 self, port: u16, _ttl_seconds: u64, ) -> Pin<Box<dyn Future<Output = Result<PortUrl>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait { ... } fn start_static_preview<'life0, 'life1, 'async_trait>( &'life0 self, directory: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<StaticPreviewServer>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait { ... } fn static_preview_ready<'life0, 'life1, 'async_trait>( &'life0 self, server: &'life1 StaticPreviewServer, ) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait { ... } fn stop_static_preview<'life0, 'life1, 'async_trait>( &'life0 self, id: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait { ... } fn keep_alive<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait { ... } fn init<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait { ... } fn cleanup<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait { ... }
}
Expand description

The core workspace trait. All filesystem and command execution flows through this.

Required Methods§

Source

fn description(&self) -> String

Source

fn root(&self) -> PathBuf

Source

fn read_file<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn write_file<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, path: &'life1 str, content: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Source

fn create_dir_all<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Security-sensitive file operations have no shell-based compatibility fallback. Every adapter must implement them with its native file API.

Source

fn remove_file<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn exists<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn is_dir<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn list_dir<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Vec<DirEntry>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn walk_tree<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str, max_depth: usize, ) -> Pin<Box<dyn Future<Output = Result<Vec<String>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn find_files<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, pattern: &'life1 str, path: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<Vec<String>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Source

fn grep<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, pattern: &'life1 str, path: &'life2 str, include: Option<&'life3 str>, ) -> Pin<Box<dyn Future<Output = Result<Vec<GrepMatch>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,

Source

fn exec<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, command: &'life1 str, cwd: Option<&'life2 str>, ) -> Pin<Box<dyn Future<Output = Result<CmdOutput>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Provided Methods§

Source

fn capabilities(&self) -> WorkspaceCapabilities

Describe the data-plane features exposed by this workspace handle.

The conservative default keeps custom adapters source-compatible; adapters should override it when they provide stronger guarantees or command/preview support.

Source

fn resolved_backend_id(&self) -> Option<ResolvedBackendId>

Source

fn supports_change_sets(&self) -> bool

Whether this handle is backed by Infra’s durable, atomic ChangeSet API.

Source

fn apply_change_set<'life0, 'async_trait>( &'life0 self, _request: WorkspaceChangeSetRequest, ) -> Pin<Box<dyn Future<Output = Result<WorkspaceChangeSet>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn get_change_set<'life0, 'life1, 'async_trait>( &'life0 self, _id: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<WorkspaceChangeSet>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn revert_change_set<'life0, 'life1, 'async_trait>( &'life0 self, _id: &'life1 str, _conversation_id: Option<String>, ) -> Pin<Box<dyn Future<Output = Result<WorkspaceChangeSet>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn read_file_tail<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str, max_bytes: usize, ) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Read at most the final max_bytes of a UTF-8 text file.

Providers should override this to avoid transferring or buffering the entire file. The compatibility default preserves behavior for custom Workspace implementations while keeping callers on one capability.

Source

fn read_file_bytes<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn write_file_bytes<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, path: &'life1 str, content: &'life2 [u8], ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Source

fn file_revision<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Option<String>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Return a content revision suitable for optimistic concurrency checks.

Source

fn read_file_versioned<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<VersionedFile>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn write_file_if_match<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, path: &'life1 str, content: &'life2 [u8], if_match: Option<&'life3 str>, ) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,

Compatibility CAS facade. Adapters should override this so compare and write share their strongest available atomicity boundary.

Source

fn write_file_chunk<'life0, 'life1, 'async_trait>( &'life0 self, _path: &'life1 str, _offset: u64, _content: Bytes, _final_chunk: bool, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Write one resumable upload chunk at an exact byte offset.

Source

fn remove_file_if_match<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, path: &'life1 str, if_match: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Remove a file only when its content revision still matches. Adapters should override this so the check and unlink share one atomic boundary.

Source

fn file_size<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Option<u64>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn list_dir_with_options<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str, _options: FileVisibilityOptions, ) -> Pin<Box<dyn Future<Output = Result<Vec<DirEntry>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn walk_tree_with_options<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str, max_depth: usize, _options: FileVisibilityOptions, ) -> Pin<Box<dyn Future<Output = Result<Vec<String>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn find_files_with_options<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, pattern: &'life1 str, path: &'life2 str, _options: FileVisibilityOptions, ) -> Pin<Box<dyn Future<Output = Result<Vec<String>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Source

fn grep_with_options<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, pattern: &'life1 str, path: &'life2 str, include: Option<&'life3 str>, _options: FileVisibilityOptions, ) -> Pin<Box<dyn Future<Output = Result<Vec<GrepMatch>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,

Source

fn resource_usage<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<WorkspaceResourceUsage>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Collect resource pressure from inside the workspace boundary.

Filesystem and inode values come from the workspace mount itself. Provider quota remains absent until a provider exposes a trustworthy quota API; callers must not substitute host filesystem values.

Source

fn exec_detached<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, command: &'life1 str, cwd: Option<&'life2 str>, _timeout_secs: u64, ) -> Pin<Box<dyn Future<Output = Result<CmdOutput>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Start a command whose lifetime is independent from the request that launched it. Remote backends should override this when their synchronous exec transport owns or reaps descendant processes after returning.

Source

fn port_url<'life0, 'async_trait>( &'life0 self, port: u16, ) -> Pin<Box<dyn Future<Output = Result<PortUrl>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn port_url_with_ttl<'life0, 'async_trait>( &'life0 self, port: u16, _ttl_seconds: u64, ) -> Pin<Box<dyn Future<Output = Result<PortUrl>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Resolve a preview URL whose provider-side token remains valid for the requested lifetime. Backends without signed URLs can ignore the TTL.

Source

fn start_static_preview<'life0, 'life1, 'async_trait>( &'life0 self, directory: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<StaticPreviewServer>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Start a managed, loopback-only static server rooted at directory.

The generated server rejects directory listings, dotfile access, and Provider adapters must implement preview lifecycle natively; the provider-neutral contract never spawns a host-side helper process.

Source

fn static_preview_ready<'life0, 'life1, 'async_trait>( &'life0 self, server: &'life1 StaticPreviewServer, ) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Check whether a previously started static Preview still owns its process and the port it published. Remote backends may override this when process identity is managed by the provider.

Source

fn stop_static_preview<'life0, 'life1, 'async_trait>( &'life0 self, id: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn keep_alive<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn init<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn cleanup<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§