Introduce metadata into the pipeline (#397)

This commit is contained in:
JT
2021-12-02 18:59:10 +13:00
committed by GitHub
parent 56307553ae
commit 45eba8b922
28 changed files with 329 additions and 199 deletions

View File

@ -19,7 +19,7 @@ use nu_parser::parse;
use nu_protocol::{
ast::Call,
engine::{EngineState, Stack, StateWorkingSet},
IntoPipelineData, PipelineData, ShellError, Span, Value, CONFIG_VARIABLE_ID,
PipelineData, ShellError, Span, Value, CONFIG_VARIABLE_ID,
};
use reedline::{Completer, CompletionActionHandler, DefaultPrompt, LineBuffer, Prompt};
@ -313,8 +313,8 @@ fn main() -> Result<()> {
}
}
fn print_value(
value: Value,
fn print_pipeline_data(
input: PipelineData,
engine_state: &EngineState,
stack: &mut Stack,
) -> Result<(), ShellError> {
@ -325,15 +325,13 @@ fn print_value(
let output = match engine_state.find_decl("table".as_bytes()) {
Some(decl_id) => {
let table = engine_state.get_decl(decl_id).run(
engine_state,
stack,
&Call::new(),
value.into_pipeline_data(),
)?;
let table =
engine_state
.get_decl(decl_id)
.run(engine_state, stack, &Call::new(), input)?;
table.collect_string("\n", &config)
}
None => value.into_string(", ", &config),
None => input.collect_string(", ", &config),
};
let stdout = std::io::stdout();
@ -436,11 +434,7 @@ fn eval_source(
PipelineData::new(Span::unknown()),
) {
Ok(pipeline_data) => {
if let Err(err) = print_value(
pipeline_data.into_value(Span::unknown()),
engine_state,
stack,
) {
if let Err(err) = print_pipeline_data(pipeline_data, engine_state, stack) {
let working_set = StateWorkingSet::new(engine_state);
report_error(&working_set, &err);