forked from extern/nushell
Add command_prelude
module (#12291)
# Description When implementing a `Command`, one must also import all the types present in the function signatures for `Command`. This makes it so that we often import the same set of types in each command implementation file. E.g., something like this: ```rust use nu_protocol::ast::Call; use nu_protocol::engine::{Command, EngineState, Stack}; use nu_protocol::{ record, Category, Example, IntoInterruptiblePipelineData, IntoPipelineData, PipelineData, ShellError, Signature, Span, Type, Value, }; ``` This PR adds the `nu_engine::command_prelude` module which contains the necessary and commonly used types to implement a `Command`: ```rust // command_prelude.rs pub use crate::CallExt; pub use nu_protocol::{ ast::{Call, CellPath}, engine::{Command, EngineState, Stack}, record, Category, Example, IntoInterruptiblePipelineData, IntoPipelineData, IntoSpanned, PipelineData, Record, ShellError, Signature, Span, Spanned, SyntaxShape, Type, Value, }; ``` This should reduce the boilerplate needed to implement a command and also gives us a place to track the breadth of the `Command` API. I tried to be conservative with what went into the prelude modules, since it might be hard/annoying to remove items from the prelude in the future. Let me know if something should be included or excluded.
This commit is contained in:
@@ -13,11 +13,12 @@
|
||||
//! (`NoopDebugger` is placed in its place inside `EngineState`.) After deactivating, you can call
|
||||
//! `Debugger::report()` to get some output from the debugger, if necessary.
|
||||
|
||||
use crate::ast::{Block, PipelineElement};
|
||||
use crate::engine::EngineState;
|
||||
use crate::{PipelineData, ShellError, Span, Value};
|
||||
use std::fmt::Debug;
|
||||
use std::ops::DerefMut;
|
||||
use crate::{
|
||||
ast::{Block, PipelineElement},
|
||||
engine::EngineState,
|
||||
PipelineData, ShellError, Span, Value,
|
||||
};
|
||||
use std::{fmt::Debug, ops::DerefMut};
|
||||
|
||||
/// Trait used for static dispatch of `eval_xxx()` evaluator calls
|
||||
///
|
||||
|
@@ -3,11 +3,12 @@
|
||||
//! Profiler implements the Debugger trait and can be used via the `debug profile` command for
|
||||
//! profiling Nushell code.
|
||||
|
||||
use crate::ast::{Block, Expr, PipelineElement};
|
||||
use crate::debugger::Debugger;
|
||||
use crate::engine::EngineState;
|
||||
use crate::record;
|
||||
use crate::{PipelineData, ShellError, Span, Value};
|
||||
use crate::{
|
||||
ast::{Block, Expr, PipelineElement},
|
||||
debugger::Debugger,
|
||||
engine::EngineState,
|
||||
record, PipelineData, ShellError, Span, Value,
|
||||
};
|
||||
use std::time::Instant;
|
||||
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
|
Reference in New Issue
Block a user