Skip to main content

DistantApi

Trait DistantApi 

Source
pub trait DistantApi {
Show 26 methods // Provided methods fn on_connect<'life0, 'async_trait>( &'life0 self, id: ConnectionId, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait { ... } fn on_disconnect<'life0, 'async_trait>( &'life0 self, id: ConnectionId, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait { ... } fn version<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, ) -> Pin<Box<dyn Future<Output = Result<Version>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait { ... } fn read_file<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, path: PathBuf, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait { ... } fn read_file_text<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, path: PathBuf, ) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait { ... } fn write_file<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, path: PathBuf, data: Vec<u8>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait { ... } fn write_file_text<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, path: PathBuf, data: String, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait { ... } fn append_file<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, path: PathBuf, data: Vec<u8>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait { ... } fn append_file_text<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, path: PathBuf, data: String, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait { ... } fn read_dir<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, path: PathBuf, depth: usize, absolute: bool, canonicalize: bool, include_root: bool, ) -> Pin<Box<dyn Future<Output = Result<(Vec<DirEntry>, Vec<Error>)>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait { ... } fn create_dir<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, path: PathBuf, all: bool, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait { ... } fn copy<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, src: PathBuf, dst: PathBuf, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait { ... } fn remove<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, path: PathBuf, force: bool, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait { ... } fn rename<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, src: PathBuf, dst: PathBuf, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait { ... } fn watch<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, path: PathBuf, recursive: bool, only: Vec<ChangeKind>, except: Vec<ChangeKind>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait { ... } fn unwatch<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, path: PathBuf, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait { ... } fn exists<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, path: PathBuf, ) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait { ... } fn metadata<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, path: PathBuf, canonicalize: bool, resolve_file_type: bool, ) -> Pin<Box<dyn Future<Output = Result<Metadata>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait { ... } fn set_permissions<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, path: PathBuf, permissions: Permissions, options: SetPermissionsOptions, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait { ... } fn search<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, query: SearchQuery, ) -> Pin<Box<dyn Future<Output = Result<SearchId>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait { ... } fn cancel_search<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, id: SearchId, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait { ... } fn proc_spawn<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, cmd: String, environment: Environment, current_dir: Option<PathBuf>, pty: Option<PtySize>, ) -> Pin<Box<dyn Future<Output = Result<ProcessId>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait { ... } fn proc_kill<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, id: ProcessId, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait { ... } fn proc_stdin<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, id: ProcessId, data: Vec<u8>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait { ... } fn proc_resize_pty<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, id: ProcessId, size: PtySize, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait { ... } fn system_info<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, ) -> Pin<Box<dyn Future<Output = Result<SystemInfo>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait { ... }
}
Expand description

Interface to support the suite of functionality available with distant, which can be used to build other servers that are compatible with distant

Provided Methods§

Source

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

Invoked whenever a new connection is established.

Source

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

Invoked whenever an existing connection is dropped.

Source

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

Retrieves information about the server’s capabilities.

Override this, otherwise it will return “unsupported” as an error.

Source

fn read_file<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, path: PathBuf, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait,

Reads bytes from a file.

  • path - the path to the file

Override this, otherwise it will return “unsupported” as an error.

Source

fn read_file_text<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, path: PathBuf, ) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait,

Reads bytes from a file as text.

  • path - the path to the file

Override this, otherwise it will return “unsupported” as an error.

Source

fn write_file<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, path: PathBuf, data: Vec<u8>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait,

Writes bytes to a file, overwriting the file if it exists.

  • path - the path to the file
  • data - the data to write

Override this, otherwise it will return “unsupported” as an error.

Source

fn write_file_text<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, path: PathBuf, data: String, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait,

Writes text to a file, overwriting the file if it exists.

  • path - the path to the file
  • data - the data to write

Override this, otherwise it will return “unsupported” as an error.

Source

fn append_file<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, path: PathBuf, data: Vec<u8>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait,

Writes bytes to the end of a file, creating it if it is missing.

  • path - the path to the file
  • data - the data to append

Override this, otherwise it will return “unsupported” as an error.

Source

fn append_file_text<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, path: PathBuf, data: String, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait,

Writes bytes to the end of a file, creating it if it is missing.

  • path - the path to the file
  • data - the data to append

Override this, otherwise it will return “unsupported” as an error.

Source

fn read_dir<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, path: PathBuf, depth: usize, absolute: bool, canonicalize: bool, include_root: bool, ) -> Pin<Box<dyn Future<Output = Result<(Vec<DirEntry>, Vec<Error>)>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait,

Reads entries from a directory.

  • path - the path to the directory
  • depth - how far to traverse the directory, 0 being unlimited
  • absolute - if true, will return absolute paths instead of relative paths
  • canonicalize - if true, will canonicalize entry paths before returned
  • include_root - if true, will include the directory specified in the entries

Override this, otherwise it will return “unsupported” as an error.

Source

fn create_dir<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, path: PathBuf, all: bool, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait,

Creates a directory.

  • path - the path to the directory
  • all - if true, will create all missing parent components

Override this, otherwise it will return “unsupported” as an error.

Source

fn copy<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, src: PathBuf, dst: PathBuf, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait,

Copies some file or directory.

  • src - the path to the file or directory to copy
  • dst - the path where the copy will be placed

Override this, otherwise it will return “unsupported” as an error.

Source

fn remove<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, path: PathBuf, force: bool, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait,

Removes some file or directory.

  • path - the path to a file or directory
  • force - if true, will remove non-empty directories

Override this, otherwise it will return “unsupported” as an error.

Source

fn rename<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, src: PathBuf, dst: PathBuf, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait,

Renames some file or directory.

  • src - the path to the file or directory to rename
  • dst - the new name for the file or directory

Override this, otherwise it will return “unsupported” as an error.

Source

fn watch<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, path: PathBuf, recursive: bool, only: Vec<ChangeKind>, except: Vec<ChangeKind>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait,

Watches a file or directory for changes.

  • path - the path to the file or directory
  • recursive - if true, will watch for changes within subdirectories and beyond
  • only - if non-empty, will limit reported changes to those included in this list
  • except - if non-empty, will limit reported changes to those not included in this list

Override this, otherwise it will return “unsupported” as an error.

Source

fn unwatch<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, path: PathBuf, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait,

Removes a file or directory from being watched.

  • path - the path to the file or directory

Override this, otherwise it will return “unsupported” as an error.

Source

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

Checks if the specified path exists.

  • path - the path to the file or directory

Override this, otherwise it will return “unsupported” as an error.

Source

fn metadata<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, path: PathBuf, canonicalize: bool, resolve_file_type: bool, ) -> Pin<Box<dyn Future<Output = Result<Metadata>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait,

Reads metadata for a file or directory.

  • path - the path to the file or directory
  • canonicalize - if true, will include a canonicalized path in the metadata
  • resolve_file_type - if true, will resolve symlinks to underlying type (file or dir)

Override this, otherwise it will return “unsupported” as an error.

Source

fn set_permissions<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, path: PathBuf, permissions: Permissions, options: SetPermissionsOptions, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait,

Sets permissions for a file, directory, or symlink.

  • path - the path to the file, directory, or symlink
  • resolve_symlink - if true, will resolve the path to the underlying file/directory
  • permissions - the new permissions to apply

Override this, otherwise it will return “unsupported” as an error.

Source

fn search<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, query: SearchQuery, ) -> Pin<Box<dyn Future<Output = Result<SearchId>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait,

Searches files for matches based on a query.

  • query - the specific query to perform

Override this, otherwise it will return “unsupported” as an error.

Cancels an actively-ongoing search.

  • id - the id of the search to cancel

Override this, otherwise it will return “unsupported” as an error.

Source

fn proc_spawn<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, cmd: String, environment: Environment, current_dir: Option<PathBuf>, pty: Option<PtySize>, ) -> Pin<Box<dyn Future<Output = Result<ProcessId>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait,

Spawns a new process, returning its id.

  • cmd - the full command to run as a new process (including arguments)
  • environment - the environment variables to associate with the process
  • current_dir - the alternative current directory to use with the process
  • pty - if provided, will run the process within a PTY of the given size

Override this, otherwise it will return “unsupported” as an error.

Source

fn proc_kill<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, id: ProcessId, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait,

Kills a running process by its id.

  • id - the unique id of the process

Override this, otherwise it will return “unsupported” as an error.

Source

fn proc_stdin<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, id: ProcessId, data: Vec<u8>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait,

Sends data to the stdin of the process with the specified id.

  • id - the unique id of the process
  • data - the bytes to send to stdin

Override this, otherwise it will return “unsupported” as an error.

Source

fn proc_resize_pty<'life0, 'async_trait>( &'life0 self, ctx: DistantCtx, id: ProcessId, size: PtySize, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait,

Resizes the PTY of the process with the specified id.

  • id - the unique id of the process
  • size - the new size of the pty

Override this, otherwise it will return “unsupported” as an error.

Source

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

Retrieves information about the system.

Override this, otherwise it will return “unsupported” as an error.

Dyn Compatibility§

This trait is dyn compatible.

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

Implementors§