mirror of
https://github.com/nushell/nushell.git
synced 2025-05-29 22:29:06 +02:00
This improves incremental build time when working on what was previously the root package. For example, previously all plugins would be rebuilt with a change to `src/commands/classified/external.rs`, but now only `nu-cli` will have to be rebuilt (and anything that depends on it).
46 lines
1.6 KiB
Rust
46 lines
1.6 KiB
Rust
use crate::commands::command::EvaluatedWholeStreamCommandArgs;
|
|
use crate::commands::cp::CopyArgs;
|
|
use crate::commands::ls::LsArgs;
|
|
use crate::commands::mkdir::MkdirArgs;
|
|
use crate::commands::mv::MoveArgs;
|
|
use crate::commands::rm::RemoveArgs;
|
|
use crate::prelude::*;
|
|
use crate::stream::OutputStream;
|
|
use nu_errors::ShellError;
|
|
use nu_parser::ExpandContext;
|
|
use std::path::PathBuf;
|
|
|
|
pub trait Shell: std::fmt::Debug {
|
|
fn name(&self) -> String;
|
|
fn homedir(&self) -> Option<PathBuf>;
|
|
|
|
fn ls(
|
|
&self,
|
|
args: LsArgs,
|
|
context: &RunnablePerItemContext,
|
|
) -> Result<OutputStream, ShellError>;
|
|
fn cd(&self, args: EvaluatedWholeStreamCommandArgs) -> Result<OutputStream, ShellError>;
|
|
fn cp(&self, args: CopyArgs, name: Tag, path: &str) -> Result<OutputStream, ShellError>;
|
|
fn mkdir(&self, args: MkdirArgs, name: Tag, path: &str) -> Result<OutputStream, ShellError>;
|
|
fn mv(&self, args: MoveArgs, name: Tag, path: &str) -> Result<OutputStream, ShellError>;
|
|
fn rm(&self, args: RemoveArgs, name: Tag, path: &str) -> Result<OutputStream, ShellError>;
|
|
fn path(&self) -> String;
|
|
fn pwd(&self, args: EvaluatedWholeStreamCommandArgs) -> Result<OutputStream, ShellError>;
|
|
fn set_path(&mut self, path: String);
|
|
|
|
fn complete(
|
|
&self,
|
|
line: &str,
|
|
pos: usize,
|
|
ctx: &rustyline::Context<'_>,
|
|
) -> Result<(usize, Vec<rustyline::completion::Pair>), rustyline::error::ReadlineError>;
|
|
|
|
fn hint(
|
|
&self,
|
|
_line: &str,
|
|
_pos: usize,
|
|
_ctx: &rustyline::Context<'_>,
|
|
_context: ExpandContext,
|
|
) -> Option<String>;
|
|
}
|