diff --git a/crates/nu-cli/src/config_files.rs b/crates/nu-cli/src/config_files.rs index 89b93111ab..c7a03b2539 100644 --- a/crates/nu-cli/src/config_files.rs +++ b/crates/nu-cli/src/config_files.rs @@ -278,7 +278,7 @@ pub fn migrate_old_plugin_file(engine_state: &EngineState) -> bool { &mut stack, &old_contents, &old_plugin_file_path.to_string_lossy(), - PipelineData::Empty, + PipelineData::empty(), false, ) != 0 { diff --git a/crates/nu-cli/src/prompt_update.rs b/crates/nu-cli/src/prompt_update.rs index 692d87d5aa..db95ed26d0 100644 --- a/crates/nu-cli/src/prompt_update.rs +++ b/crates/nu-cli/src/prompt_update.rs @@ -61,7 +61,7 @@ fn get_prompt_string( .and_then(|v| match v { Value::Closure { val, .. } => { let result = ClosureEvalOnce::new(engine_state, stack, val.as_ref().clone()) - .run_with_input(PipelineData::Empty); + .run_with_input(PipelineData::empty()); trace!( "get_prompt_string (block) {}:{}:{}", @@ -76,7 +76,7 @@ fn get_prompt_string( }) .ok() } - Value::String { .. } => Some(PipelineData::Value(v.clone(), None)), + Value::String { .. } => Some(PipelineData::value(v.clone(), None)), _ => None, }) .and_then(|pipeline_data| { diff --git a/crates/nu-cli/src/reedline_config.rs b/crates/nu-cli/src/reedline_config.rs index fcad0c4925..28c1f785b0 100644 --- a/crates/nu-cli/src/reedline_config.rs +++ b/crates/nu-cli/src/reedline_config.rs @@ -159,7 +159,7 @@ pub(crate) fn add_menus( engine_state.merge_delta(delta)?; let mut temp_stack = Stack::new().collect_value(); - let input = PipelineData::Empty; + let input = PipelineData::empty(); menu_eval_results.push(eval_block::( &engine_state, &mut temp_stack, diff --git a/crates/nu-cli/tests/completions/mod.rs b/crates/nu-cli/tests/completions/mod.rs index 9f1c8bf75d..9090e05537 100644 --- a/crates/nu-cli/tests/completions/mod.rs +++ b/crates/nu-cli/tests/completions/mod.rs @@ -2140,7 +2140,8 @@ fn run_external_completion_within_pwd( assert!(engine_state.merge_delta(delta).is_ok()); assert!( - eval_block::(&engine_state, &mut stack, &block, PipelineData::Empty).is_ok() + eval_block::(&engine_state, &mut stack, &block, PipelineData::empty()) + .is_ok() ); // Merge environment into the permanent state diff --git a/crates/nu-cli/tests/completions/support/completions_helpers.rs b/crates/nu-cli/tests/completions/support/completions_helpers.rs index 2d5334a0b0..45a76aa852 100644 --- a/crates/nu-cli/tests/completions/support/completions_helpers.rs +++ b/crates/nu-cli/tests/completions/support/completions_helpers.rs @@ -199,7 +199,7 @@ pub fn merge_input( engine_state, stack, &block, - PipelineData::Value(Value::nothing(Span::unknown()), None), + PipelineData::value(Value::nothing(Span::unknown()), None), ) .is_ok() ); diff --git a/crates/nu-cmd-base/src/wrap_call.rs b/crates/nu-cmd-base/src/wrap_call.rs index f9e9b1703e..60cb27df11 100644 --- a/crates/nu-cmd-base/src/wrap_call.rs +++ b/crates/nu-cmd-base/src/wrap_call.rs @@ -12,7 +12,7 @@ use nu_protocol::{ /// ```rust /// # use nu_engine::command_prelude::*; /// # use nu_cmd_base::WrapCall; -/// # fn do_command_logic(call: WrapCall) -> Result { Ok(PipelineData::Empty) } +/// # fn do_command_logic(call: WrapCall) -> Result { Ok(PipelineData::empty()) } /// /// # struct Command {} /// # impl Command { diff --git a/crates/nu-cmd-extra/src/extra/filters/each_while.rs b/crates/nu-cmd-extra/src/extra/filters/each_while.rs index 95b8df230a..a9dec04726 100644 --- a/crates/nu-cmd-extra/src/extra/filters/each_while.rs +++ b/crates/nu-cmd-extra/src/extra/filters/each_while.rs @@ -72,7 +72,7 @@ impl Command for EachWhile { let metadata = input.metadata(); match input { - PipelineData::Empty => Ok(PipelineData::Empty), + PipelineData::Empty => Ok(PipelineData::empty()), PipelineData::Value(Value::Range { .. }, ..) | PipelineData::Value(Value::List { .. }, ..) | PipelineData::ListStream(..) => { @@ -109,7 +109,7 @@ impl Command for EachWhile { .fuse() .into_pipeline_data(head, engine_state.signals().clone())) } else { - Ok(PipelineData::Empty) + Ok(PipelineData::empty()) } } // This match allows non-iterables to be accepted, diff --git a/crates/nu-cmd-extra/src/extra/formats/from/url.rs b/crates/nu-cmd-extra/src/extra/formats/from/url.rs index b1e8329020..b09eadfb9d 100644 --- a/crates/nu-cmd-extra/src/extra/formats/from/url.rs +++ b/crates/nu-cmd-extra/src/extra/formats/from/url.rs @@ -55,7 +55,7 @@ fn from_url(input: PipelineData, head: Span) -> Result .map(|(k, v)| (k, Value::string(v, head))) .collect(); - Ok(PipelineData::Value(Value::record(record, head), metadata)) + Ok(PipelineData::value(Value::record(record, head), metadata)) } _ => Err(ShellError::UnsupportedInput { msg: "String not compatible with URL encoding".to_string(), diff --git a/crates/nu-cmd-extra/src/extra/strings/format/bits.rs b/crates/nu-cmd-extra/src/extra/strings/format/bits.rs index 584109a5b4..c8c6c09e77 100644 --- a/crates/nu-cmd-extra/src/extra/strings/format/bits.rs +++ b/crates/nu-cmd-extra/src/extra/strings/format/bits.rs @@ -113,7 +113,7 @@ fn format_bits( let cell_paths = (!cell_paths.is_empty()).then_some(cell_paths); if let PipelineData::ByteStream(stream, metadata) = input { - Ok(PipelineData::ByteStream( + Ok(PipelineData::byte_stream( byte_stream_to_bits(stream, head), metadata, )) diff --git a/crates/nu-cmd-extra/src/extra/strings/format/command.rs b/crates/nu-cmd-extra/src/extra/strings/format/command.rs index 9e3adaf3cf..33514b29e1 100644 --- a/crates/nu-cmd-extra/src/extra/strings/format/command.rs +++ b/crates/nu-cmd-extra/src/extra/strings/format/command.rs @@ -191,7 +191,7 @@ fn format( // We can only handle a Record or a List of Records match data_as_value { Value::Record { .. } => match format_record(format_operations, &data_as_value, config) { - Ok(value) => Ok(PipelineData::Value(Value::string(value, head_span), None)), + Ok(value) => Ok(PipelineData::value(Value::string(value, head_span), None)), Err(value) => Err(value), }, diff --git a/crates/nu-cmd-lang/src/core_commands/do_.rs b/crates/nu-cmd-lang/src/core_commands/do_.rs index 0360bb35b9..c5de5a5e64 100644 --- a/crates/nu-cmd-lang/src/core_commands/do_.rs +++ b/crates/nu-cmd-lang/src/core_commands/do_.rs @@ -157,12 +157,12 @@ impl Command for Do { if !stderr_msg.is_empty() { child.stderr = Some(ChildPipe::Tee(Box::new(Cursor::new(stderr_msg)))); } - Ok(PipelineData::ByteStream( + Ok(PipelineData::byte_stream( ByteStream::child(child, span), metadata, )) } - Err(stream) => Ok(PipelineData::ByteStream(stream, metadata)), + Err(stream) => Ok(PipelineData::byte_stream(stream, metadata)), } } Ok(PipelineData::ByteStream(mut stream, metadata)) @@ -176,7 +176,7 @@ impl Command for Do { if let ByteStreamSource::Child(child) = stream.source_mut() { child.ignore_error(true); } - Ok(PipelineData::ByteStream(stream, metadata)) + Ok(PipelineData::byte_stream(stream, metadata)) } Ok(PipelineData::Value(Value::Error { .. }, ..)) | Err(_) if ignore_all_errors => { Ok(PipelineData::empty()) @@ -189,7 +189,7 @@ impl Command for Do { value } }); - Ok(PipelineData::ListStream(stream, metadata)) + Ok(PipelineData::list_stream(stream, metadata)) } r => r, } diff --git a/crates/nu-cmd-plugin/src/commands/plugin/stop.rs b/crates/nu-cmd-plugin/src/commands/plugin/stop.rs index 343729436b..a29bb10243 100644 --- a/crates/nu-cmd-plugin/src/commands/plugin/stop.rs +++ b/crates/nu-cmd-plugin/src/commands/plugin/stop.rs @@ -66,7 +66,7 @@ impl Command for PluginStop { } if found { - Ok(PipelineData::Empty) + Ok(PipelineData::empty()) } else { Err(ShellError::GenericError { error: format!("Failed to stop the `{}` plugin", name.item), diff --git a/crates/nu-command/src/bytes/at.rs b/crates/nu-command/src/bytes/at.rs index 06d07db0d6..fe9d2ec039 100644 --- a/crates/nu-command/src/bytes/at.rs +++ b/crates/nu-command/src/bytes/at.rs @@ -76,7 +76,7 @@ impl Command for BytesAt { if let PipelineData::ByteStream(stream, metadata) = input { let stream = stream.slice(call.head, call.arguments_span(), range)?; - Ok(PipelineData::ByteStream(stream, metadata)) + Ok(PipelineData::byte_stream(stream, metadata)) } else { operate( map_value, diff --git a/crates/nu-command/src/bytes/collect.rs b/crates/nu-command/src/bytes/collect.rs index 84089f2961..be750e5875 100644 --- a/crates/nu-command/src/bytes/collect.rs +++ b/crates/nu-command/src/bytes/collect.rs @@ -67,7 +67,7 @@ impl Command for BytesCollect { ByteStreamType::Binary, ); - Ok(PipelineData::ByteStream(output, metadata)) + Ok(PipelineData::byte_stream(output, metadata)) } fn examples(&self) -> Vec { diff --git a/crates/nu-command/src/conversions/into/binary.rs b/crates/nu-command/src/conversions/into/binary.rs index b2ce622642..d4a7fdf5a4 100644 --- a/crates/nu-command/src/conversions/into/binary.rs +++ b/crates/nu-command/src/conversions/into/binary.rs @@ -129,7 +129,7 @@ fn into_binary( if let PipelineData::ByteStream(stream, metadata) = input { // Just set the type - that should be good enough - Ok(PipelineData::ByteStream( + Ok(PipelineData::byte_stream( stream.with_type(ByteStreamType::Binary), metadata, )) diff --git a/crates/nu-command/src/conversions/into/string.rs b/crates/nu-command/src/conversions/into/string.rs index cebf8eae75..a79afddbce 100644 --- a/crates/nu-command/src/conversions/into/string.rs +++ b/crates/nu-command/src/conversions/into/string.rs @@ -170,7 +170,7 @@ fn string_helper( // within a string stream is actually valid UTF-8. But refuse to do it if it was already set // to binary if stream.type_().is_string_coercible() { - Ok(PipelineData::ByteStream( + Ok(PipelineData::byte_stream( stream.with_type(ByteStreamType::String), metadata, )) diff --git a/crates/nu-command/src/database/commands/schema.rs b/crates/nu-command/src/database/commands/schema.rs index 5663d7748a..512d1923b5 100644 --- a/crates/nu-command/src/database/commands/schema.rs +++ b/crates/nu-command/src/database/commands/schema.rs @@ -79,7 +79,7 @@ impl Command for SchemaDb { // TODO: add views and triggers - Ok(PipelineData::Value(Value::record(record, span), None)) + Ok(PipelineData::value(Value::record(record, span), None)) } } diff --git a/crates/nu-command/src/debug/debug_.rs b/crates/nu-command/src/debug/debug_.rs index 48de0b2fad..2b504e47f5 100644 --- a/crates/nu-command/src/debug/debug_.rs +++ b/crates/nu-command/src/debug/debug_.rs @@ -42,7 +42,7 @@ impl Command for Debug { let raw = call.has_flag(engine_state, stack, "raw")?; let raw_value = call.has_flag(engine_state, stack, "raw-value")?; - // Should PipelineData::Empty result in an error here? + // Should PipelineData::empty() result in an error here? input.map( move |x| { diff --git a/crates/nu-command/src/debug/env.rs b/crates/nu-command/src/debug/env.rs index b59b1f4a7f..73ce269d4f 100644 --- a/crates/nu-command/src/debug/env.rs +++ b/crates/nu-command/src/debug/env.rs @@ -25,7 +25,7 @@ impl Command for DebugEnv { call: &Call, _input: PipelineData, ) -> Result { - Ok(PipelineData::Value( + Ok(PipelineData::value( env_to_strings(engine_state, stack)?.into_value(call.head), None, )) diff --git a/crates/nu-command/src/debug/experimental_options.rs b/crates/nu-command/src/debug/experimental_options.rs index 31e7d1968d..036a0386e0 100644 --- a/crates/nu-command/src/debug/experimental_options.rs +++ b/crates/nu-command/src/debug/experimental_options.rs @@ -35,7 +35,7 @@ impl Command for DebugExperimentalOptions { call: &Call, _input: PipelineData, ) -> Result { - Ok(PipelineData::Value( + Ok(PipelineData::value( Value::list( nu_experimental::ALL .iter() diff --git a/crates/nu-command/src/env/config/config_.rs b/crates/nu-command/src/env/config/config_.rs index fd13768290..b9216139b0 100644 --- a/crates/nu-command/src/env/config/config_.rs +++ b/crates/nu-command/src/env/config/config_.rs @@ -124,7 +124,7 @@ pub(super) fn start_editor( let post_wait_callback = PostWaitCallback::for_job_control(engine_state, None, None); - // Wrap the output into a `PipelineData::ByteStream`. + // Wrap the output into a `PipelineData::byte_stream`. let child = nu_protocol::process::ChildProcess::new( child, None, @@ -133,7 +133,7 @@ pub(super) fn start_editor( Some(post_wait_callback), )?; - Ok(PipelineData::ByteStream( + Ok(PipelineData::byte_stream( ByteStream::child(child, call.head), None, )) diff --git a/crates/nu-command/src/env/config/config_use_colors.rs b/crates/nu-command/src/env/config/config_use_colors.rs index 28537535ee..5903a21c8b 100644 --- a/crates/nu-command/src/env/config/config_use_colors.rs +++ b/crates/nu-command/src/env/config/config_use_colors.rs @@ -33,7 +33,7 @@ impl Command for ConfigUseColors { .get_config() .use_ansi_coloring .get(engine_state); - Ok(PipelineData::Value( + Ok(PipelineData::value( Value::bool(use_ansi_coloring, call.head), None, )) diff --git a/crates/nu-command/src/filesystem/mktemp.rs b/crates/nu-command/src/filesystem/mktemp.rs index 4449a09b58..6ac9d32182 100644 --- a/crates/nu-command/src/filesystem/mktemp.rs +++ b/crates/nu-command/src/filesystem/mktemp.rs @@ -120,6 +120,6 @@ impl Command for Mktemp { }); } }; - Ok(PipelineData::Value(Value::string(res, span), None)) + Ok(PipelineData::value(Value::string(res, span), None)) } } diff --git a/crates/nu-command/src/filesystem/open.rs b/crates/nu-command/src/filesystem/open.rs index 74e8800b27..e21152a293 100644 --- a/crates/nu-command/src/filesystem/open.rs +++ b/crates/nu-command/src/filesystem/open.rs @@ -176,7 +176,7 @@ impl Command for Open { .map_err(|err| IoError::new(err, arg_span, PathBuf::from(path)))?; // No content_type by default - Is added later if no converter is found - let stream = PipelineData::ByteStream( + let stream = PipelineData::byte_stream( ByteStream::file(file, call_span, engine_state.signals().clone()), Some(PipelineMetadata { data_source: DataSource::FilePath(path.to_path_buf()), @@ -246,7 +246,7 @@ impl Command for Open { } if output.is_empty() { - Ok(PipelineData::Empty) + Ok(PipelineData::empty()) } else if output.len() == 1 { Ok(output.remove(0)) } else { diff --git a/crates/nu-command/src/filesystem/rm.rs b/crates/nu-command/src/filesystem/rm.rs index fedfe1b6d2..8807f65ab7 100644 --- a/crates/nu-command/src/filesystem/rm.rs +++ b/crates/nu-command/src/filesystem/rm.rs @@ -339,7 +339,7 @@ fn rm( inner: vec![], }); } else if !confirmed { - return Ok(PipelineData::Empty); + return Ok(PipelineData::empty()); } } diff --git a/crates/nu-command/src/filesystem/save.rs b/crates/nu-command/src/filesystem/save.rs index 7549b0f2fd..48e9d54647 100644 --- a/crates/nu-command/src/filesystem/save.rs +++ b/crates/nu-command/src/filesystem/save.rs @@ -191,7 +191,7 @@ impl Command for Save { } } - Ok(PipelineData::Empty) + Ok(PipelineData::empty()) } PipelineData::ListStream(ls, pipeline_metadata) if raw || prepare_path(&path, append, force)?.0.extension().is_none() => diff --git a/crates/nu-command/src/filesystem/start.rs b/crates/nu-command/src/filesystem/start.rs index 42e7aa0a4f..ba52dea999 100644 --- a/crates/nu-command/src/filesystem/start.rs +++ b/crates/nu-command/src/filesystem/start.rs @@ -45,7 +45,7 @@ impl Command for Start { // Attempt to parse the input as a URL if let Ok(url) = url::Url::parse(path_no_whitespace) { open_path(url.as_str(), engine_state, stack, path.span)?; - return Ok(PipelineData::Empty); + return Ok(PipelineData::empty()); } // If it's not a URL, treat it as a file path let cwd = engine_state.cwd(Some(stack))?; @@ -54,7 +54,7 @@ impl Command for Start { // Check if the path exists or if it's a valid file/directory if full_path.exists() { open_path(full_path, engine_state, stack, path.span)?; - return Ok(PipelineData::Empty); + return Ok(PipelineData::empty()); } // If neither file nor URL, return an error Err(ShellError::GenericError { diff --git a/crates/nu-command/src/filesystem/watch.rs b/crates/nu-command/src/filesystem/watch.rs index cde5f91b8f..6ee456a464 100644 --- a/crates/nu-command/src/filesystem/watch.rs +++ b/crates/nu-command/src/filesystem/watch.rs @@ -241,7 +241,7 @@ impl Command for Watch { new_path.unwrap_or_else(|| "".into()).to_string_lossy(), head, )) - .run_with_input(PipelineData::Empty); + .run_with_input(PipelineData::empty()); match result { Ok(val) => val.print_table(engine_state, stack, false, false)?, diff --git a/crates/nu-command/src/filters/chunk_by.rs b/crates/nu-command/src/filters/chunk_by.rs index 3cc52b2b2a..b2d83f9004 100644 --- a/crates/nu-command/src/filters/chunk_by.rs +++ b/crates/nu-command/src/filters/chunk_by.rs @@ -199,7 +199,7 @@ pub fn chunk_by( let metadata = input.metadata(); match input { - PipelineData::Empty => Ok(PipelineData::Empty), + PipelineData::Empty => Ok(PipelineData::empty()), PipelineData::Value(Value::Range { .. }, ..) | PipelineData::Value(Value::List { .. }, ..) | PipelineData::ListStream(..) => { diff --git a/crates/nu-command/src/filters/chunks.rs b/crates/nu-command/src/filters/chunks.rs index 12ef37bd59..8d95f6a159 100644 --- a/crates/nu-command/src/filters/chunks.rs +++ b/crates/nu-command/src/filters/chunks.rs @@ -124,11 +124,11 @@ pub fn chunks( PipelineData::Value(Value::List { vals, .. }, metadata) => { let chunks = ChunksIter::new(vals, chunk_size, span); let stream = ListStream::new(chunks, span, engine_state.signals().clone()); - Ok(PipelineData::ListStream(stream, metadata)) + Ok(PipelineData::list_stream(stream, metadata)) } PipelineData::ListStream(stream, metadata) => { let stream = stream.modify(|iter| ChunksIter::new(iter, chunk_size, span)); - Ok(PipelineData::ListStream(stream, metadata)) + Ok(PipelineData::list_stream(stream, metadata)) } PipelineData::Value(Value::Binary { val, .. }, metadata) => { let chunk_read = ChunkRead { @@ -148,7 +148,7 @@ pub fn chunks( } PipelineData::ByteStream(stream, metadata) => { let pipeline_data = match stream.reader() { - None => PipelineData::Empty, + None => PipelineData::empty(), Some(reader) => { let chunk_read = ChunkRead { reader, diff --git a/crates/nu-command/src/filters/columns.rs b/crates/nu-command/src/filters/columns.rs index 3cb11f949d..b71592491b 100644 --- a/crates/nu-command/src/filters/columns.rs +++ b/crates/nu-command/src/filters/columns.rs @@ -74,7 +74,7 @@ impl Command for Columns { fn getcol(head: Span, input: PipelineData) -> Result { let metadata = input.metadata(); match input { - PipelineData::Empty => Ok(PipelineData::Empty), + PipelineData::Empty => Ok(PipelineData::empty()), PipelineData::Value(v, ..) => { let span = v.span(); let cols = match v { diff --git a/crates/nu-command/src/filters/default.rs b/crates/nu-command/src/filters/default.rs index 0b9f42df04..d20f9ae97c 100644 --- a/crates/nu-command/src/filters/default.rs +++ b/crates/nu-command/src/filters/default.rs @@ -227,7 +227,7 @@ fn default( // stream's internal state already preserves the original signals config, so if this // Signals::empty list stream gets interrupted it will be caught by the underlying iterator let ls = ListStream::new(stream, span, Signals::empty()); - Ok(PipelineData::ListStream(ls, metadata)) + Ok(PipelineData::list_stream(ls, metadata)) // Otherwise, return the input as is } else { Ok(input) @@ -269,7 +269,7 @@ impl DefaultValue { DefaultValue::Uncalculated(closure) => { let value = closure .item - .run_with_input(PipelineData::Empty)? + .run_with_input(PipelineData::empty())? .into_value(closure.span)?; *self = DefaultValue::Calculated(value.clone()); Ok(value) @@ -282,7 +282,7 @@ impl DefaultValue { fn single_run_pipeline_data(self) -> Result { match self { DefaultValue::Uncalculated(mut closure) => { - closure.item.run_with_input(PipelineData::Empty) + closure.item.run_with_input(PipelineData::empty()) } DefaultValue::Calculated(val) => Ok(val.into_pipeline_data()), } diff --git a/crates/nu-command/src/filters/drop/column.rs b/crates/nu-command/src/filters/drop/column.rs index b69a15b2d7..7fa8fd78e7 100644 --- a/crates/nu-command/src/filters/drop/column.rs +++ b/crates/nu-command/src/filters/drop/column.rs @@ -108,7 +108,7 @@ fn drop_cols( metadata, )) } else { - Ok(PipelineData::Empty) + Ok(PipelineData::empty()) } } PipelineData::Value(mut v, ..) => { @@ -136,7 +136,7 @@ fn drop_cols( val => Err(unsupported_value_error(&val, head)), } } - PipelineData::Empty => Ok(PipelineData::Empty), + PipelineData::Empty => Ok(PipelineData::empty()), PipelineData::ByteStream(stream, ..) => Err(ShellError::OnlySupportsThisInputType { exp_input_type: "table or record".into(), wrong_type: stream.type_().describe().into(), diff --git a/crates/nu-command/src/filters/each.rs b/crates/nu-command/src/filters/each.rs index 5bf8570070..7f77917b85 100644 --- a/crates/nu-command/src/filters/each.rs +++ b/crates/nu-command/src/filters/each.rs @@ -106,7 +106,7 @@ with 'transpose' first."# let metadata = input.metadata(); match input { - PipelineData::Empty => Ok(PipelineData::Empty), + PipelineData::Empty => Ok(PipelineData::empty()), PipelineData::Value(Value::Range { .. }, ..) | PipelineData::Value(Value::List { .. }, ..) | PipelineData::ListStream(..) => { @@ -164,7 +164,7 @@ with 'transpose' first."# }) .into_pipeline_data(head, engine_state.signals().clone())) } else { - Ok(PipelineData::Empty) + Ok(PipelineData::empty()) } } // This match allows non-iterables to be accepted, diff --git a/crates/nu-command/src/filters/empty.rs b/crates/nu-command/src/filters/empty.rs index 18271ef40c..ac58c46ee9 100644 --- a/crates/nu-command/src/filters/empty.rs +++ b/crates/nu-command/src/filters/empty.rs @@ -28,7 +28,7 @@ pub fn empty( } } else { match input { - PipelineData::Empty => Ok(PipelineData::Empty), + PipelineData::Empty => Ok(PipelineData::empty()), PipelineData::ByteStream(stream, ..) => { let span = stream.span(); match stream.reader() { diff --git a/crates/nu-command/src/filters/find.rs b/crates/nu-command/src/filters/find.rs index 88d89de784..8ac3a96579 100644 --- a/crates/nu-command/src/filters/find.rs +++ b/crates/nu-command/src/filters/find.rs @@ -448,7 +448,7 @@ fn find_in_pipelinedata( let map_columns_to_search = columns_to_search.clone(); match input { - PipelineData::Empty => Ok(PipelineData::Empty), + PipelineData::Empty => Ok(PipelineData::empty()), PipelineData::Value(_, _) => input .filter( move |value| { @@ -470,7 +470,7 @@ fn find_in_pipelinedata( .map(move |x| highlight_matches_in_value(&map_pattern, x, &map_columns_to_search)) }); - Ok(PipelineData::ListStream(stream, metadata)) + Ok(PipelineData::list_stream(stream, metadata)) } PipelineData::ByteStream(stream, ..) => { let span = stream.span(); @@ -489,7 +489,7 @@ fn find_in_pipelinedata( } Ok(Value::list(output, span).into_pipeline_data()) } else { - Ok(PipelineData::Empty) + Ok(PipelineData::empty()) } } } diff --git a/crates/nu-command/src/filters/first.rs b/crates/nu-command/src/filters/first.rs index 4df5798016..1d030a407a 100644 --- a/crates/nu-command/src/filters/first.rs +++ b/crates/nu-command/src/filters/first.rs @@ -167,7 +167,7 @@ fn first_helper( Err(ShellError::AccessEmptyContent { span: head }) } } else { - Ok(PipelineData::ListStream( + Ok(PipelineData::list_stream( stream.modify(|iter| iter.take(rows)), metadata, )) @@ -191,7 +191,7 @@ fn first_helper( } } else { // Just take 'rows' bytes off the stream, mimicking the binary behavior - Ok(PipelineData::ByteStream( + Ok(PipelineData::byte_stream( ByteStream::read( reader.take(rows as u64), head, @@ -202,7 +202,7 @@ fn first_helper( )) } } else { - Ok(PipelineData::Empty) + Ok(PipelineData::empty()) } } else { Err(ShellError::OnlySupportsThisInputType { diff --git a/crates/nu-command/src/filters/insert.rs b/crates/nu-command/src/filters/insert.rs index adfa1a2137..485b9ca937 100644 --- a/crates/nu-command/src/filters/insert.rs +++ b/crates/nu-command/src/filters/insert.rs @@ -264,7 +264,7 @@ fn insert( value } }); - Ok(PipelineData::ListStream(stream, metadata)) + Ok(PipelineData::list_stream(stream, metadata)) } else { let stream = stream.map(move |mut value| { if let Err(e) = value.insert_data_at_cell_path( @@ -278,7 +278,7 @@ fn insert( } }); - Ok(PipelineData::ListStream(stream, metadata)) + Ok(PipelineData::list_stream(stream, metadata)) } } PipelineData::Empty => Err(ShellError::IncompatiblePathAccess { diff --git a/crates/nu-command/src/filters/interleave.rs b/crates/nu-command/src/filters/interleave.rs index 499800d7b0..f6890f7510 100644 --- a/crates/nu-command/src/filters/interleave.rs +++ b/crates/nu-command/src/filters/interleave.rs @@ -120,7 +120,7 @@ interleave .into_iter() .chain(closures.into_iter().map(|closure| { ClosureEvalOnce::new(engine_state, stack, closure) - .run_with_input(PipelineData::Empty) + .run_with_input(PipelineData::empty()) })) .try_for_each(|stream| { stream.and_then(|stream| { diff --git a/crates/nu-command/src/filters/items.rs b/crates/nu-command/src/filters/items.rs index ff27900e6e..f5eb3a088a 100644 --- a/crates/nu-command/src/filters/items.rs +++ b/crates/nu-command/src/filters/items.rs @@ -42,7 +42,7 @@ impl Command for Items { let metadata = input.metadata(); match input { - PipelineData::Empty => Ok(PipelineData::Empty), + PipelineData::Empty => Ok(PipelineData::empty()), PipelineData::Value(value, ..) => { let span = value.span(); match value { @@ -55,7 +55,7 @@ impl Command for Items { let result = closure .add_arg(Value::string(col, span)) .add_arg(val) - .run_with_input(PipelineData::Empty) + .run_with_input(PipelineData::empty()) .and_then(|data| data.into_value(head)); match result { diff --git a/crates/nu-command/src/filters/join.rs b/crates/nu-command/src/filters/join.rs index d435a971c3..2f9a35c172 100644 --- a/crates/nu-command/src/filters/join.rs +++ b/crates/nu-command/src/filters/join.rs @@ -85,7 +85,7 @@ impl Command for Join { Value::String { val: r_on, .. }, ) => { let result = join(rows_1, rows_2, l_on, r_on, join_type, span); - Ok(PipelineData::Value(result, metadata)) + Ok(PipelineData::value(result, metadata)) } _ => Err(ShellError::UnsupportedInput { msg: "(PipelineData, table, string, string)".into(), diff --git a/crates/nu-command/src/filters/last.rs b/crates/nu-command/src/filters/last.rs index 8f9a5d33a0..e402f99868 100644 --- a/crates/nu-command/src/filters/last.rs +++ b/crates/nu-command/src/filters/last.rs @@ -186,7 +186,7 @@ impl Command for Last { } } } else { - Ok(PipelineData::Empty) + Ok(PipelineData::empty()) } } else { Err(ShellError::OnlySupportsThisInputType { diff --git a/crates/nu-command/src/filters/lines.rs b/crates/nu-command/src/filters/lines.rs index 6527e73f1d..35371354bc 100644 --- a/crates/nu-command/src/filters/lines.rs +++ b/crates/nu-command/src/filters/lines.rs @@ -57,7 +57,7 @@ impl Command for Lines { src_span: value.span(), }), }, - PipelineData::Empty => Ok(PipelineData::Empty), + PipelineData::Empty => Ok(PipelineData::empty()), PipelineData::ListStream(stream, metadata) => { let stream = stream.modify(|iter| { iter.filter_map(move |value| { @@ -81,7 +81,7 @@ impl Command for Lines { .flatten() }); - Ok(PipelineData::ListStream(stream, metadata)) + Ok(PipelineData::list_stream(stream, metadata)) } PipelineData::ByteStream(stream, ..) => { if let Some(lines) = stream.lines() { diff --git a/crates/nu-command/src/filters/par_each.rs b/crates/nu-command/src/filters/par_each.rs index cb1f13cc62..9813693039 100644 --- a/crates/nu-command/src/filters/par_each.rs +++ b/crates/nu-command/src/filters/par_each.rs @@ -130,7 +130,7 @@ impl Command for ParEach { }; match input { - PipelineData::Empty => Ok(PipelineData::Empty), + PipelineData::Empty => Ok(PipelineData::empty()), PipelineData::Value(value, ..) => { let span = value.span(); match value { diff --git a/crates/nu-command/src/filters/reduce.rs b/crates/nu-command/src/filters/reduce.rs index 6983100d02..d8ad319eac 100644 --- a/crates/nu-command/src/filters/reduce.rs +++ b/crates/nu-command/src/filters/reduce.rs @@ -123,7 +123,7 @@ impl Command for Reduce { acc = closure .add_arg(value) .add_arg(acc.clone()) - .run_with_input(PipelineData::Value(acc, None))? + .run_with_input(PipelineData::value(acc, None))? .into_value(head)?; } diff --git a/crates/nu-command/src/filters/skip/skip_.rs b/crates/nu-command/src/filters/skip/skip_.rs index 383dd3f2df..d5a6e0502d 100644 --- a/crates/nu-command/src/filters/skip/skip_.rs +++ b/crates/nu-command/src/filters/skip/skip_.rs @@ -94,7 +94,7 @@ impl Command for Skip { PipelineData::ByteStream(stream, metadata) => { if stream.type_().is_binary_coercible() { let span = stream.span(); - Ok(PipelineData::ByteStream( + Ok(PipelineData::byte_stream( stream.skip(span, n as u64)?, metadata, )) diff --git a/crates/nu-command/src/filters/slice.rs b/crates/nu-command/src/filters/slice.rs index 638d6dfca3..da7fa420b9 100644 --- a/crates/nu-command/src/filters/slice.rs +++ b/crates/nu-command/src/filters/slice.rs @@ -81,7 +81,7 @@ impl Command for Slice { }; if count == 0 { - Ok(PipelineData::Value(Value::list(vec![], head), None)) + Ok(PipelineData::value(Value::list(vec![], head), None)) } else { let iter = v.into_iter().skip(from).take(count); Ok(iter.into_pipeline_data(head, engine_state.signals().clone())) @@ -102,7 +102,7 @@ impl Command for Slice { }; if count == 0 { - Ok(PipelineData::Value(Value::list(vec![], head), None)) + Ok(PipelineData::value(Value::list(vec![], head), None)) } else { let iter = input.into_iter().skip(from).take(count); Ok(iter.into_pipeline_data(head, engine_state.signals().clone())) diff --git a/crates/nu-command/src/filters/take/take_.rs b/crates/nu-command/src/filters/take/take_.rs index a03b1825da..836b22fc91 100644 --- a/crates/nu-command/src/filters/take/take_.rs +++ b/crates/nu-command/src/filters/take/take_.rs @@ -62,7 +62,7 @@ impl Command for Take { )), Value::Binary { val, .. } => { let slice: Vec = val.into_iter().take(rows_desired).collect(); - Ok(PipelineData::Value(Value::binary(slice, span), metadata)) + Ok(PipelineData::value(Value::binary(slice, span), metadata)) } Value::Range { val, .. } => Ok(val .into_range_iter(span, Signals::empty()) @@ -82,14 +82,14 @@ impl Command for Take { }), } } - PipelineData::ListStream(stream, metadata) => Ok(PipelineData::ListStream( + PipelineData::ListStream(stream, metadata) => Ok(PipelineData::list_stream( stream.modify(|iter| iter.take(rows_desired)), metadata, )), PipelineData::ByteStream(stream, metadata) => { if stream.type_().is_binary_coercible() { let span = stream.span(); - Ok(PipelineData::ByteStream( + Ok(PipelineData::byte_stream( stream.take(span, rows_desired as u64)?, metadata, )) diff --git a/crates/nu-command/src/filters/tee.rs b/crates/nu-command/src/filters/tee.rs index 1b3179070f..6f99ff5563 100644 --- a/crates/nu-command/src/filters/tee.rs +++ b/crates/nu-command/src/filters/tee.rs @@ -138,7 +138,7 @@ use it in your pipeline."# let tee_thread = spawn_tee(info, eval_block)?; let tee = IoTee::new(read, tee_thread); - Ok(PipelineData::ByteStream( + Ok(PipelineData::byte_stream( ByteStream::read(tee, span, engine_state.signals().clone(), type_), metadata, )) @@ -151,7 +151,7 @@ use it in your pipeline."# let tee_thread = spawn_tee(info, eval_block)?; let tee = IoTee::new(file, tee_thread); - Ok(PipelineData::ByteStream( + Ok(PipelineData::byte_stream( ByteStream::read(tee, span, engine_state.signals().clone(), type_), metadata, )) @@ -234,7 +234,7 @@ use it in your pipeline."# }; if child.stdout.is_some() || child.stderr.is_some() { - Ok(PipelineData::ByteStream( + Ok(PipelineData::byte_stream( ByteStream::child(*child, span), metadata, )) @@ -243,7 +243,7 @@ use it in your pipeline."# thread.join().unwrap_or_else(|_| Err(panic_error()))?; } child.wait()?; - Ok(PipelineData::Empty) + Ok(PipelineData::empty()) } } } @@ -439,7 +439,7 @@ fn spawn_tee( Signals::empty(), info.type_, ); - eval_block(PipelineData::ByteStream(stream, info.metadata)) + eval_block(PipelineData::byte_stream(stream, info.metadata)) }) .map_err(|err| { IoError::new_with_additional_context(err, info.span, None, "Could not spawn tee") diff --git a/crates/nu-command/src/filters/transpose.rs b/crates/nu-command/src/filters/transpose.rs index be9c5c51c8..80d94431a7 100644 --- a/crates/nu-command/src/filters/transpose.rs +++ b/crates/nu-command/src/filters/transpose.rs @@ -293,7 +293,7 @@ pub fn transpose( }) .collect::>(); if result_data.len() == 1 && args.as_record { - Ok(PipelineData::Value( + Ok(PipelineData::value( result_data .pop() .expect("already check result only contains one item"), diff --git a/crates/nu-command/src/filters/update.rs b/crates/nu-command/src/filters/update.rs index 947ea30ff2..ec30951133 100644 --- a/crates/nu-command/src/filters/update.rs +++ b/crates/nu-command/src/filters/update.rs @@ -210,7 +210,7 @@ fn update( } }); - Ok(PipelineData::ListStream(stream, metadata)) + Ok(PipelineData::list_stream(stream, metadata)) } else { let stream = stream.map(move |mut value| { if let Err(e) = @@ -222,7 +222,7 @@ fn update( } }); - Ok(PipelineData::ListStream(stream, metadata)) + Ok(PipelineData::list_stream(stream, metadata)) } } PipelineData::Empty => Err(ShellError::IncompatiblePathAccess { diff --git a/crates/nu-command/src/filters/upsert.rs b/crates/nu-command/src/filters/upsert.rs index 8e8ae10e28..d6237c87d7 100644 --- a/crates/nu-command/src/filters/upsert.rs +++ b/crates/nu-command/src/filters/upsert.rs @@ -288,7 +288,7 @@ fn upsert( } }); - Ok(PipelineData::ListStream(stream, metadata)) + Ok(PipelineData::list_stream(stream, metadata)) } else { let stream = stream.map(move |mut value| { if let Err(e) = @@ -300,7 +300,7 @@ fn upsert( } }); - Ok(PipelineData::ListStream(stream, metadata)) + Ok(PipelineData::list_stream(stream, metadata)) } } PipelineData::Empty => Err(ShellError::IncompatiblePathAccess { @@ -335,7 +335,7 @@ fn upsert_value_by_closure( let input = value_at_path .map(Cow::into_owned) .map(IntoPipelineData::into_pipeline_data) - .unwrap_or(PipelineData::Empty); + .unwrap_or(PipelineData::empty()); let new_value = closure .add_arg(arg) @@ -366,7 +366,7 @@ fn upsert_single_value_by_closure( let input = value_at_path .map(Cow::into_owned) .map(IntoPipelineData::into_pipeline_data) - .unwrap_or(PipelineData::Empty); + .unwrap_or(PipelineData::empty()); let new_value = closure .add_arg(arg) diff --git a/crates/nu-command/src/filters/values.rs b/crates/nu-command/src/filters/values.rs index f4a321ae94..939539244c 100644 --- a/crates/nu-command/src/filters/values.rs +++ b/crates/nu-command/src/filters/values.rs @@ -137,7 +137,7 @@ fn values( let signals = engine_state.signals().clone(); let metadata = input.metadata(); match input { - PipelineData::Empty => Ok(PipelineData::Empty), + PipelineData::Empty => Ok(PipelineData::empty()), PipelineData::Value(v, ..) => { let span = v.span(); match v { diff --git a/crates/nu-command/src/filters/window.rs b/crates/nu-command/src/filters/window.rs index 65ce2b0aee..8e44c2ae06 100644 --- a/crates/nu-command/src/filters/window.rs +++ b/crates/nu-command/src/filters/window.rs @@ -120,12 +120,12 @@ impl Command for Window { PipelineData::Value(Value::List { vals, .. }, metadata) => { let chunks = WindowGapIter::new(vals, size, stride, remainder, head); let stream = ListStream::new(chunks, head, engine_state.signals().clone()); - Ok(PipelineData::ListStream(stream, metadata)) + Ok(PipelineData::list_stream(stream, metadata)) } PipelineData::ListStream(stream, metadata) => { let stream = stream .modify(|iter| WindowGapIter::new(iter, size, stride, remainder, head)); - Ok(PipelineData::ListStream(stream, metadata)) + Ok(PipelineData::list_stream(stream, metadata)) } input => Err(input.unsupported_input_error("list", head)), } @@ -134,12 +134,12 @@ impl Command for Window { PipelineData::Value(Value::List { vals, .. }, metadata) => { let chunks = WindowOverlapIter::new(vals, size, stride, remainder, head); let stream = ListStream::new(chunks, head, engine_state.signals().clone()); - Ok(PipelineData::ListStream(stream, metadata)) + Ok(PipelineData::list_stream(stream, metadata)) } PipelineData::ListStream(stream, metadata) => { let stream = stream .modify(|iter| WindowOverlapIter::new(iter, size, stride, remainder, head)); - Ok(PipelineData::ListStream(stream, metadata)) + Ok(PipelineData::list_stream(stream, metadata)) } input => Err(input.unsupported_input_error("list", head)), } diff --git a/crates/nu-command/src/filters/wrap.rs b/crates/nu-command/src/filters/wrap.rs index f30b110803..4f48f554a8 100644 --- a/crates/nu-command/src/filters/wrap.rs +++ b/crates/nu-command/src/filters/wrap.rs @@ -36,7 +36,7 @@ impl Command for Wrap { let metadata = input.metadata(); match input { - PipelineData::Empty => Ok(PipelineData::Empty), + PipelineData::Empty => Ok(PipelineData::empty()), PipelineData::Value(Value::Range { .. }, ..) | PipelineData::Value(Value::List { .. }, ..) | PipelineData::ListStream { .. } => Ok(input diff --git a/crates/nu-command/src/filters/zip.rs b/crates/nu-command/src/filters/zip.rs index d7315fb002..3ebd6a425f 100644 --- a/crates/nu-command/src/filters/zip.rs +++ b/crates/nu-command/src/filters/zip.rs @@ -103,7 +103,7 @@ impl Command for Zip { let metadata = input.metadata(); let other = if let Value::Closure { val, .. } = other { // If a closure was provided, evaluate it and consume its stream output - ClosureEvalOnce::new(engine_state, stack, *val).run_with_input(PipelineData::Empty)? + ClosureEvalOnce::new(engine_state, stack, *val).run_with_input(PipelineData::empty())? } else { other.into_pipeline_data() }; diff --git a/crates/nu-command/src/formats/from/delimited.rs b/crates/nu-command/src/formats/from/delimited.rs index 865bc79a41..aa05289a8d 100644 --- a/crates/nu-command/src/formats/from/delimited.rs +++ b/crates/nu-command/src/formats/from/delimited.rs @@ -95,11 +95,11 @@ pub(super) fn from_delimited_data( ) -> Result { let metadata = input.metadata().map(|md| md.with_content_type(None)); match input { - PipelineData::Empty => Ok(PipelineData::Empty), + PipelineData::Empty => Ok(PipelineData::empty()), PipelineData::Value(value, ..) => { let string = value.into_string()?; let byte_stream = ByteStream::read_string(string, name, Signals::empty()); - Ok(PipelineData::ListStream( + Ok(PipelineData::list_stream( from_delimited_stream(config, byte_stream, name)?, metadata, )) @@ -110,7 +110,7 @@ pub(super) fn from_delimited_data( dst_span: name, src_span: list_stream.span(), }), - PipelineData::ByteStream(byte_stream, ..) => Ok(PipelineData::ListStream( + PipelineData::ByteStream(byte_stream, ..) => Ok(PipelineData::list_stream( from_delimited_stream(config, byte_stream, name)?, metadata, )), diff --git a/crates/nu-command/src/formats/from/json.rs b/crates/nu-command/src/formats/from/json.rs index e36b6b9bf9..3979f3a354 100644 --- a/crates/nu-command/src/formats/from/json.rs +++ b/crates/nu-command/src/formats/from/json.rs @@ -76,25 +76,27 @@ impl Command for FromJson { if call.has_flag(engine_state, stack, "objects")? { // Return a stream of JSON values, one for each non-empty line match input { - PipelineData::Value(Value::String { val, .. }, ..) => Ok(PipelineData::ListStream( - read_json_lines( - Cursor::new(val), - span, - strict, - engine_state.signals().clone(), - ), - metadata, - )), + PipelineData::Value(Value::String { val, .. }, ..) => { + Ok(PipelineData::list_stream( + read_json_lines( + Cursor::new(val), + span, + strict, + engine_state.signals().clone(), + ), + metadata, + )) + } PipelineData::ByteStream(stream, ..) if stream.type_() != ByteStreamType::Binary => { if let Some(reader) = stream.reader() { - Ok(PipelineData::ListStream( + Ok(PipelineData::list_stream( read_json_lines(reader, span, strict, Signals::empty()), metadata, )) } else { - Ok(PipelineData::Empty) + Ok(PipelineData::empty()) } } _ => Err(ShellError::OnlySupportsThisInputType { diff --git a/crates/nu-command/src/formats/from/ods.rs b/crates/nu-command/src/formats/from/ods.rs index a6308ac4d9..b9164b221c 100644 --- a/crates/nu-command/src/formats/from/ods.rs +++ b/crates/nu-command/src/formats/from/ods.rs @@ -168,7 +168,7 @@ fn from_ods( } } - Ok(PipelineData::Value( + Ok(PipelineData::value( Value::record(dict.into_iter().collect(), head), None, )) diff --git a/crates/nu-command/src/formats/from/xlsx.rs b/crates/nu-command/src/formats/from/xlsx.rs index ba4451792c..f73c487527 100644 --- a/crates/nu-command/src/formats/from/xlsx.rs +++ b/crates/nu-command/src/formats/from/xlsx.rs @@ -181,7 +181,7 @@ fn from_xlsx( } } - Ok(PipelineData::Value( + Ok(PipelineData::value( Value::record(dict.into_iter().collect(), head), None, )) diff --git a/crates/nu-command/src/formats/to/delimited.rs b/crates/nu-command/src/formats/to/delimited.rs index f3278bc123..913e896ac8 100644 --- a/crates/nu-command/src/formats/to/delimited.rs +++ b/crates/nu-command/src/formats/to/delimited.rs @@ -132,7 +132,7 @@ pub fn to_delimited_data( Value::Record { val, .. } => val.columns().cloned().collect(), _ => return Err(make_unsupported_input_error(value.get_type(), head, span)), }; - input = PipelineData::Value(value, metadata.clone()); + input = PipelineData::value(value, metadata.clone()); columns } }; @@ -181,5 +181,5 @@ pub fn to_delimited_data( }, ); - Ok(PipelineData::ByteStream(stream, metadata)) + Ok(PipelineData::byte_stream(stream, metadata)) } diff --git a/crates/nu-command/src/formats/to/json.rs b/crates/nu-command/src/formats/to/json.rs index 4a481ecc32..27368e29c0 100644 --- a/crates/nu-command/src/formats/to/json.rs +++ b/crates/nu-command/src/formats/to/json.rs @@ -76,7 +76,7 @@ impl Command for ToJson { data_source: nu_protocol::DataSource::None, content_type: Some(mime::APPLICATION_JSON.to_string()), }; - Ok(PipelineData::Value(res, Some(metadata))) + Ok(PipelineData::value(res, Some(metadata))) } _ => Err(ShellError::CantConvert { to_type: "JSON".into(), diff --git a/crates/nu-command/src/formats/to/text.rs b/crates/nu-command/src/formats/to/text.rs index a9a9c77eb5..43a322a512 100644 --- a/crates/nu-command/src/formats/to/text.rs +++ b/crates/nu-command/src/formats/to/text.rs @@ -121,10 +121,10 @@ impl Command for ToText { ) }; - Ok(PipelineData::ByteStream(stream, update_metadata(meta))) + Ok(PipelineData::byte_stream(stream, update_metadata(meta))) } PipelineData::ByteStream(stream, meta) => { - Ok(PipelineData::ByteStream(stream, update_metadata(meta))) + Ok(PipelineData::byte_stream(stream, update_metadata(meta))) } } } diff --git a/crates/nu-command/src/generators/generate.rs b/crates/nu-command/src/generators/generate.rs index 9a59e064f7..e6efd7199d 100644 --- a/crates/nu-command/src/generators/generate.rs +++ b/crates/nu-command/src/generators/generate.rs @@ -112,7 +112,7 @@ In this case, generation also stops when the input stream stops."# let closure_result = closure .add_arg(state_arg) - .run_with_input(PipelineData::Empty); + .run_with_input(PipelineData::empty()); let (output, next_input) = parse_closure_result(closure_result, head); // We use `state` to control when to stop, not `output`. By wrapping @@ -135,7 +135,7 @@ In this case, generation also stops when the input stream stops."# let closure_result = closure .add_arg(item) .add_arg(state_arg) - .run_with_input(PipelineData::Empty); + .run_with_input(PipelineData::empty()); let (output, next_input) = parse_closure_result(closure_result, head); state = next_input; Some(output) diff --git a/crates/nu-command/src/math/utils.rs b/crates/nu-command/src/math/utils.rs index da60bed9cf..a4557e20e7 100644 --- a/crates/nu-command/src/math/utils.rs +++ b/crates/nu-command/src/math/utils.rs @@ -76,7 +76,7 @@ pub fn calculate( PipelineData::Value(Value::List { ref vals, .. }, ..) => match &vals[..] { [Value::Record { .. }, _end @ ..] => helper_for_tables( vals, - values.span().expect("PipelineData::Value had no span"), + values.span().expect("PipelineData::value had no span"), name, mf, ), diff --git a/crates/nu-command/src/network/http/client.rs b/crates/nu-command/src/network/http/client.rs index 985d6ceaae..d3e299b7f4 100644 --- a/crates/nu-command/src/network/http/client.rs +++ b/crates/nu-command/src/network/http/client.rs @@ -143,7 +143,7 @@ pub fn response_to_buffer( let reader = response.into_reader(); - PipelineData::ByteStream( + PipelineData::byte_stream( ByteStream::read(reader, span, engine_state.signals().clone(), response_type) .with_known_size(buffer_size), None, diff --git a/crates/nu-command/src/network/url/parse.rs b/crates/nu-command/src/network/url/parse.rs index 9987eb265f..f0bb35b0bc 100644 --- a/crates/nu-command/src/network/url/parse.rs +++ b/crates/nu-command/src/network/url/parse.rs @@ -117,7 +117,7 @@ fn parse(value: Value, head: Span, config: &Config) -> Result params, }; - Ok(PipelineData::Value(Value::record(record, head), None)) + Ok(PipelineData::value(Value::record(record, head), None)) } #[cfg(test)] diff --git a/crates/nu-command/src/network/url/split_query.rs b/crates/nu-command/src/network/url/split_query.rs index 475756c5aa..7925847479 100644 --- a/crates/nu-command/src/network/url/split_query.rs +++ b/crates/nu-command/src/network/url/split_query.rs @@ -89,7 +89,7 @@ impl Command for UrlSplitQuery { let span = value.span(); let query = value.to_expanded_string("", &stack.get_config(engine_state)); let table = query_string_to_table(&query, call.head, span)?; - Ok(PipelineData::Value(table, None)) + Ok(PipelineData::value(table, None)) } } diff --git a/crates/nu-command/src/path/join.rs b/crates/nu-command/src/path/join.rs index cbf67eeab2..5dac926b43 100644 --- a/crates/nu-command/src/path/join.rs +++ b/crates/nu-command/src/path/join.rs @@ -168,12 +168,12 @@ fn run(call: &Call, args: &Arguments, input: PipelineData) -> Result Ok(PipelineData::Value(handle_value(val, args, head), md)), - PipelineData::ListStream(stream, ..) => Ok(PipelineData::Value( + PipelineData::Value(val, md) => Ok(PipelineData::value(handle_value(val, args, head), md)), + PipelineData::ListStream(stream, ..) => Ok(PipelineData::value( handle_value(stream.into_value(), args, head), metadata, )), - PipelineData::ByteStream(stream, ..) => Ok(PipelineData::Value( + PipelineData::ByteStream(stream, ..) => Ok(PipelineData::value( handle_value(stream.into_value()?, args, head), metadata, )), diff --git a/crates/nu-command/src/platform/clear.rs b/crates/nu-command/src/platform/clear.rs index 0374dd0664..c4733899c5 100644 --- a/crates/nu-command/src/platform/clear.rs +++ b/crates/nu-command/src/platform/clear.rs @@ -66,7 +66,7 @@ impl Command for Clear { } }; - Ok(PipelineData::Empty) + Ok(PipelineData::empty()) } fn examples(&self) -> Vec { diff --git a/crates/nu-command/src/platform/is_terminal.rs b/crates/nu-command/src/platform/is_terminal.rs index 79cb27f188..a789a8dfa2 100644 --- a/crates/nu-command/src/platform/is_terminal.rs +++ b/crates/nu-command/src/platform/is_terminal.rs @@ -63,7 +63,7 @@ impl Command for IsTerminal { } }; - Ok(PipelineData::Value( + Ok(PipelineData::value( Value::bool(is_terminal, call.head), None, )) diff --git a/crates/nu-command/src/platform/ulimit.rs b/crates/nu-command/src/platform/ulimit.rs index bdf3518a3b..762eade546 100644 --- a/crates/nu-command/src/platform/ulimit.rs +++ b/crates/nu-command/src/platform/ulimit.rs @@ -555,7 +555,7 @@ impl Command for ULimit { set_limits(&limit_value, &res, hard, soft, call.head)?; } - Ok(PipelineData::Empty) + Ok(PipelineData::empty()) } else { print_limits(call, engine_state, stack, all, soft, hard) } diff --git a/crates/nu-command/src/random/bool.rs b/crates/nu-command/src/random/bool.rs index f2f07c8c5a..fde7b331e9 100644 --- a/crates/nu-command/src/random/bool.rs +++ b/crates/nu-command/src/random/bool.rs @@ -78,7 +78,7 @@ fn bool( let bool_result: bool = random_bool(probability); - Ok(PipelineData::Value(Value::bool(bool_result, span), None)) + Ok(PipelineData::value(Value::bool(bool_result, span), None)) } #[cfg(test)] diff --git a/crates/nu-command/src/random/byte_stream.rs b/crates/nu-command/src/random/byte_stream.rs index ea6d183452..94c861c283 100644 --- a/crates/nu-command/src/random/byte_stream.rs +++ b/crates/nu-command/src/random/byte_stream.rs @@ -24,7 +24,7 @@ pub(super) fn random_byte_stream( const OUTPUT_CHUNK_SIZE: usize = 8192; let mut remaining_bytes = length; - PipelineData::ByteStream( + PipelineData::byte_stream( ByteStream::from_fn(span, signals.clone(), stream_type, move |out| { if remaining_bytes == 0 || signals.interrupted() { return Ok(false); diff --git a/crates/nu-command/src/random/float.rs b/crates/nu-command/src/random/float.rs index 9c0674c816..493471dae2 100644 --- a/crates/nu-command/src/random/float.rs +++ b/crates/nu-command/src/random/float.rs @@ -93,9 +93,9 @@ fn float( Bound::Unbounded => random_range(range.start()..f64::MAX), }; - Ok(PipelineData::Value(Value::float(value, span), None)) + Ok(PipelineData::value(Value::float(value, span), None)) } - None => Ok(PipelineData::Value( + None => Ok(PipelineData::value( Value::float(random_range(0.0..1.0), span), None, )), diff --git a/crates/nu-command/src/random/int.rs b/crates/nu-command/src/random/int.rs index 90e3a0fbaf..5fdf691caf 100644 --- a/crates/nu-command/src/random/int.rs +++ b/crates/nu-command/src/random/int.rs @@ -97,7 +97,7 @@ fn integer( Bound::Unbounded => random_range(range.start()..=i64::MAX), }; - Ok(PipelineData::Value(Value::int(value, span), None)) + Ok(PipelineData::value(Value::int(value, span), None)) } Range::FloatRange(_) => Err(ShellError::UnsupportedInput { msg: "float range".into(), @@ -107,7 +107,7 @@ fn integer( }), } } - None => Ok(PipelineData::Value( + None => Ok(PipelineData::value( Value::int(random_range(0..=i64::MAX), span), None, )), diff --git a/crates/nu-command/src/random/uuid.rs b/crates/nu-command/src/random/uuid.rs index 4299429c55..ec849dc390 100644 --- a/crates/nu-command/src/random/uuid.rs +++ b/crates/nu-command/src/random/uuid.rs @@ -143,7 +143,7 @@ fn uuid( } }; - Ok(PipelineData::Value(Value::string(uuid_str, span), None)) + Ok(PipelineData::value(Value::string(uuid_str, span), None)) } fn validate_flags( diff --git a/crates/nu-command/src/sort_utils.rs b/crates/nu-command/src/sort_utils.rs index 4bf9820467..97311dedb3 100644 --- a/crates/nu-command/src/sort_utils.rs +++ b/crates/nu-command/src/sort_utils.rs @@ -270,7 +270,7 @@ pub fn compare_custom_closure( closure_eval .add_arg(left.clone()) .add_arg(right.clone()) - .run_with_input(PipelineData::Value( + .run_with_input(PipelineData::value( Value::list(vec![left.clone(), right.clone()], span), None, )) diff --git a/crates/nu-command/src/strings/format/date.rs b/crates/nu-command/src/strings/format/date.rs index ba30c3663a..3f58782eba 100644 --- a/crates/nu-command/src/strings/format/date.rs +++ b/crates/nu-command/src/strings/format/date.rs @@ -160,7 +160,7 @@ fn run( ) -> Result { let head = call.head; if list { - return Ok(PipelineData::Value( + return Ok(PipelineData::value( generate_strftime_list(head, false), None, )); diff --git a/crates/nu-command/src/strings/parse.rs b/crates/nu-command/src/strings/parse.rs index 1bc7cfc118..c1b4f9bb01 100644 --- a/crates/nu-command/src/strings/parse.rs +++ b/crates/nu-command/src/strings/parse.rs @@ -195,7 +195,7 @@ fn operate( .collect::>(); match input { - PipelineData::Empty => Ok(PipelineData::Empty), + PipelineData::Empty => Ok(PipelineData::empty()), PipelineData::Value(value, ..) => match value { Value::String { val, .. } => { let captures = regex @@ -270,7 +270,7 @@ fn operate( Ok(ListStream::new(iter, head, Signals::empty()).into()) } else { - Ok(PipelineData::Empty) + Ok(PipelineData::empty()) } } } diff --git a/crates/nu-command/src/strings/str_/join.rs b/crates/nu-command/src/strings/str_/join.rs index 42948537c0..e87ea4ce14 100644 --- a/crates/nu-command/src/strings/str_/join.rs +++ b/crates/nu-command/src/strings/str_/join.rs @@ -128,7 +128,7 @@ fn run( }, ); - Ok(PipelineData::ByteStream(output, metadata)) + Ok(PipelineData::byte_stream(output, metadata)) } #[cfg(test)] diff --git a/crates/nu-command/src/system/nu_check.rs b/crates/nu-command/src/system/nu_check.rs index c380d21b3f..0f28448684 100644 --- a/crates/nu-command/src/system/nu_check.rs +++ b/crates/nu-command/src/system/nu_check.rs @@ -234,10 +234,10 @@ fn check_parse( inner: vec![], }) } else { - Ok(PipelineData::Value(Value::bool(false, call_head), None)) + Ok(PipelineData::value(Value::bool(false, call_head), None)) } } else { - Ok(PipelineData::Value(Value::bool(true, call_head), None)) + Ok(PipelineData::value(Value::bool(true, call_head), None)) } } @@ -289,10 +289,10 @@ fn parse_file_or_dir_module( inner: vec![], }) } else { - Ok(PipelineData::Value(Value::bool(false, call_head), None)) + Ok(PipelineData::value(Value::bool(false, call_head), None)) } } else { - Ok(PipelineData::Value(Value::bool(true, call_head), None)) + Ok(PipelineData::value(Value::bool(true, call_head), None)) } } diff --git a/crates/nu-command/src/system/run_external.rs b/crates/nu-command/src/system/run_external.rs index 2df5e1aa08..61e173de19 100644 --- a/crates/nu-command/src/system/run_external.rs +++ b/crates/nu-command/src/system/run_external.rs @@ -246,7 +246,7 @@ impl Command for External { } Err(stream) => { command.stdin(Stdio::piped()); - Some(PipelineData::ByteStream(stream, metadata)) + Some(PipelineData::byte_stream(stream, metadata)) } }, PipelineData::Empty => { @@ -313,7 +313,7 @@ impl Command for External { let child_pid = child.pid(); - // Wrap the output into a `PipelineData::ByteStream`. + // Wrap the output into a `PipelineData::byte_stream`. let mut child = ChildProcess::new( child, merged_stream, @@ -336,7 +336,7 @@ impl Command for External { child.ignore_error(true); } - Ok(PipelineData::ByteStream( + Ok(PipelineData::byte_stream( ByteStream::child(child, call.head), None, )) @@ -478,7 +478,7 @@ fn resolve_globbed_path_to_cwd_relative( /// /// Note: Avoid using this function when piping data from an external command to /// another external command, because it copies data unnecessarily. Instead, -/// extract the pipe from the `PipelineData::ByteStream` of the first command +/// extract the pipe from the `PipelineData::byte_stream` of the first command /// and hand it to the second command directly. fn write_pipeline_data( mut engine_state: EngineState, @@ -788,22 +788,22 @@ mod test { engine_state.add_env_var("PWD".into(), Value::string(cwd, Span::test_data())); let mut buf = vec![]; - let input = PipelineData::Empty; + let input = PipelineData::empty(); write_pipeline_data(engine_state.clone(), stack.clone(), input, &mut buf).unwrap(); assert_eq!(buf, b""); let mut buf = vec![]; - let input = PipelineData::Value(Value::string("foo", Span::unknown()), None); + let input = PipelineData::value(Value::string("foo", Span::unknown()), None); write_pipeline_data(engine_state.clone(), stack.clone(), input, &mut buf).unwrap(); assert_eq!(buf, b"foo"); let mut buf = vec![]; - let input = PipelineData::Value(Value::binary(b"foo", Span::unknown()), None); + let input = PipelineData::value(Value::binary(b"foo", Span::unknown()), None); write_pipeline_data(engine_state.clone(), stack.clone(), input, &mut buf).unwrap(); assert_eq!(buf, b"foo"); let mut buf = vec![]; - let input = PipelineData::ByteStream( + let input = PipelineData::byte_stream( ByteStream::read( b"foo".as_slice(), Span::unknown(), diff --git a/crates/nu-command/src/system/uname.rs b/crates/nu-command/src/system/uname.rs index 7e74e81925..698ecd7376 100644 --- a/crates/nu-command/src/system/uname.rs +++ b/crates/nu-command/src/system/uname.rs @@ -69,7 +69,7 @@ impl Command for UName { .to_string()) }) .collect::, ShellError>>()?; - Ok(PipelineData::Value( + Ok(PipelineData::value( Value::record( record! { "kernel-name" => Value::string(outputs[0].clone(), span), diff --git a/crates/nu-command/src/viewers/table.rs b/crates/nu-command/src/viewers/table.rs index 4cd0bbfda6..8945a1f1d5 100644 --- a/crates/nu-command/src/viewers/table.rs +++ b/crates/nu-command/src/viewers/table.rs @@ -424,13 +424,13 @@ fn handle_table_command(mut input: CmdInput<'_>) -> ShellResult { match input.data { // Binary streams should behave as if they really are `binary` data, and printed as hex PipelineData::ByteStream(stream, _) if stream.type_() == ByteStreamType::Binary => Ok( - PipelineData::ByteStream(pretty_hex_stream(stream, input.call.head), None), + PipelineData::byte_stream(pretty_hex_stream(stream, input.call.head), None), ), PipelineData::ByteStream(..) => Ok(input.data), PipelineData::Value(Value::Binary { val, .. }, ..) => { let signals = input.engine_state.signals().clone(); let stream = ByteStream::read_binary(val, input.call.head, signals); - Ok(PipelineData::ByteStream( + Ok(PipelineData::byte_stream( pretty_hex_stream(stream, input.call.head), None, )) @@ -439,16 +439,16 @@ fn handle_table_command(mut input: CmdInput<'_>) -> ShellResult { PipelineData::Value(Value::List { vals, .. }, metadata) => { let signals = input.engine_state.signals().clone(); let stream = ListStream::new(vals.into_iter(), span, signals); - input.data = PipelineData::Empty; + input.data = PipelineData::empty(); handle_row_stream(input, stream, metadata) } PipelineData::ListStream(stream, metadata) => { - input.data = PipelineData::Empty; + input.data = PipelineData::empty(); handle_row_stream(input, stream, metadata) } PipelineData::Value(Value::Record { val, .. }, ..) => { - input.data = PipelineData::Empty; + input.data = PipelineData::empty(); handle_record(input, val.into_owned()) } PipelineData::Value(Value::Error { error, .. }, ..) => { @@ -464,7 +464,7 @@ fn handle_table_command(mut input: CmdInput<'_>) -> ShellResult { let signals = input.engine_state.signals().clone(); let stream = ListStream::new(val.into_range_iter(span, Signals::empty()), span, signals); - input.data = PipelineData::Empty; + input.data = PipelineData::empty(); handle_row_stream(input, stream, metadata) } x => Ok(x), @@ -761,7 +761,7 @@ fn handle_row_stream( Signals::empty(), ByteStreamType::String, ); - Ok(PipelineData::ByteStream(stream, None)) + Ok(PipelineData::byte_stream(stream, None)) } fn make_clickable_link( diff --git a/crates/nu-command/tests/commands/start.rs b/crates/nu-command/tests/commands/start.rs index 55507be5d6..01115ec3c1 100644 --- a/crates/nu-command/tests/commands/start.rs +++ b/crates/nu-command/tests/commands/start.rs @@ -2,9 +2,9 @@ use super::*; use nu_engine::test_help::{convert_single_value_to_cmd_args, eval_block_with_input}; use nu_engine::{current_dir, eval_expression}; use nu_protocol::{ + PipelineData, Span, Spanned, Type, Value, ast::Call, engine::{EngineState, Stack, StateWorkingSet}, - PipelineData, Span, Spanned, Type, Value, }; use std::path::PathBuf; @@ -33,19 +33,14 @@ fn test_start_valid_url() { // Create call for: `start https://www.example.com` let path = "https://www.example.com".to_string(); - let span = Span::test_data(); + let span = Span::test_data(); let call = Call::test( "start", // The arguments for `start` are just the path in this case vec![Value::string(path, span)], ); - let result = Start.run( - &engine_state, - &mut stack, - &call, - PipelineData::Empty, - ); + let result = Start.run(&engine_state, &mut stack, &call, PipelineData::empty); assert!( result.is_ok(), @@ -61,17 +56,9 @@ fn test_start_valid_local_path() { // Here we'll simulate opening the current directory (`.`). let path = ".".to_string(); let span = Span::test_data(); - let call = Call::test( - "start", - vec![Value::string(path, span)], - ); + let call = Call::test("start", vec![Value::string(path, span)]); - let result = Start.run( - &engine_state, - &mut stack, - &call, - PipelineData::Empty, - ); + let result = Start.run(&engine_state, &mut stack, &call, PipelineData::empty); // If the environment is correctly set, it should succeed. // If you're running in a CI environment or restricted environment @@ -90,17 +77,9 @@ fn test_start_nonexistent_local_path() { // Create an obviously invalid path let path = "this_file_does_not_exist_hopefully.txt".to_string(); let span = Span::test_data(); - let call = Call::test( - "start", - vec![Value::string(path, span)], - ); + let call = Call::test("start", vec![Value::string(path, span)]); - let result = Start.run( - &engine_state, - &mut stack, - &call, - PipelineData::Empty, - ); + let result = Start.run(&engine_state, &mut stack, &call, PipelineData::empty); // We expect an error since the file does not exist assert!( @@ -117,4 +96,5 @@ fn test_start_nonexistent_local_path() { } else { panic!("Unexpected error type, expected ShellError::GenericError"); } -} \ No newline at end of file +} + diff --git a/crates/nu-engine/src/closure_eval.rs b/crates/nu-engine/src/closure_eval.rs index 6778c09a52..57451539d2 100644 --- a/crates/nu-engine/src/closure_eval.rs +++ b/crates/nu-engine/src/closure_eval.rs @@ -37,7 +37,7 @@ fn eval_fn(debug: bool) -> EvalBlockWithEarlyReturnFn { /// let mut closure = ClosureEval::new(engine_state, stack, closure); /// let iter = Vec::::new() /// .into_iter() -/// .map(move |value| closure.add_arg(value).run_with_input(PipelineData::Empty)); +/// .map(move |value| closure.add_arg(value).run_with_input(PipelineData::empty())); /// ``` /// /// Many closures follow a simple, common scheme where the pipeline input and the first argument are the same value. @@ -175,7 +175,7 @@ impl ClosureEval { /// # let value = unimplemented!(); /// let result = ClosureEvalOnce::new(engine_state, stack, closure) /// .add_arg(value) -/// .run_with_input(PipelineData::Empty); +/// .run_with_input(PipelineData::empty()); /// ``` /// /// Many closures follow a simple, common scheme where the pipeline input and the first argument are the same value. diff --git a/crates/nu-engine/src/documentation.rs b/crates/nu-engine/src/documentation.rs index 78f89e9eb8..10a0fb42e6 100644 --- a/crates/nu-engine/src/documentation.rs +++ b/crates/nu-engine/src/documentation.rs @@ -412,7 +412,7 @@ fn get_command_documentation( ))], parser_info: HashMap::new(), }, - PipelineData::Value(Value::list(vals, span), None), + PipelineData::value(Value::list(vals, span), None), ) { if let Ok((str, ..)) = result.collect_string_strict(span) { let _ = writeln!(long_desc, "\n{help_section_name}Input/output types{RESET}:"); @@ -487,7 +487,7 @@ fn get_command_documentation( engine_state, stack, &(&table_call).into(), - PipelineData::Value(result.clone(), None), + PipelineData::value(result.clone(), None), ) .ok() }); @@ -532,7 +532,7 @@ fn update_ansi_from_config( arguments: vec![argument], parser_info: HashMap::new(), }, - PipelineData::Empty, + PipelineData::empty(), ) { if let Ok((str, ..)) = result.collect_string_strict(span) { *ansi_code = str; diff --git a/crates/nu-engine/src/eval.rs b/crates/nu-engine/src/eval.rs index 92d737d505..d17ee180ee 100644 --- a/crates/nu-engine/src/eval.rs +++ b/crates/nu-engine/src/eval.rs @@ -294,7 +294,7 @@ pub fn eval_block_with_early_return( input: PipelineData, ) -> Result { match eval_block::(engine_state, stack, block, input) { - Err(ShellError::Return { span: _, value }) => Ok(PipelineData::Value(*value, None)), + Err(ShellError::Return { span: _, value }) => Ok(PipelineData::value(*value, None)), x => x, } } diff --git a/crates/nu-engine/src/eval_ir.rs b/crates/nu-engine/src/eval_ir.rs index 576c5e77a3..6f7a90713d 100644 --- a/crates/nu-engine/src/eval_ir.rs +++ b/crates/nu-engine/src/eval_ir.rs @@ -48,7 +48,7 @@ pub fn eval_ir_block( // the heap allocation here by reusing buffers - our allocator is fast enough let mut registers = Vec::with_capacity(ir_block.register_count as usize); for _ in 0..ir_block.register_count { - registers.push(PipelineData::Empty); + registers.push(PipelineData::empty()); } // Initialize file storage. @@ -133,15 +133,15 @@ impl<'a> EvalContext<'a> { // log::trace!("<- {reg_id}"); std::mem::replace( &mut self.registers[reg_id.get() as usize], - PipelineData::Empty, + PipelineData::empty(), ) } /// Clone data from a register. Must be collected first. fn clone_reg(&mut self, reg_id: RegId, error_span: Span) -> Result { match &self.registers[reg_id.get() as usize] { - PipelineData::Empty => Ok(PipelineData::Empty), - PipelineData::Value(val, meta) => Ok(PipelineData::Value(val.clone(), meta.clone())), + PipelineData::Empty => Ok(PipelineData::empty()), + PipelineData::Value(val, meta) => Ok(PipelineData::value(val.clone(), meta.clone())), _ => Err(ShellError::IrEvalError { msg: "Must collect to value before using instruction that clones from a register" .into(), @@ -269,7 +269,7 @@ fn prepare_error_handler( ); } else { // Set the register to empty - ctx.put_reg(reg_id, PipelineData::Empty); + ctx.put_reg(reg_id, PipelineData::empty()); } } } @@ -838,7 +838,7 @@ fn load_literal( span: Span, ) -> Result { let value = literal_value(ctx, lit, span)?; - ctx.put_reg(dst, PipelineData::Value(value, None)); + ctx.put_reg(dst, PipelineData::value(value, None)); Ok(InstructionResult::Continue) } @@ -993,7 +993,7 @@ fn binary_op( } }; - ctx.put_reg(lhs_dst, PipelineData::Value(result, None)); + ctx.put_reg(lhs_dst, PipelineData::value(result, None)); Ok(InstructionResult::Continue) } @@ -1466,7 +1466,7 @@ fn collect(data: PipelineData, fallback_span: Span) -> Result other, }; let value = data.into_value(span)?; - Ok(PipelineData::Value(value, metadata)) + Ok(PipelineData::value(value, metadata)) } /// Helper for drain behavior. @@ -1584,7 +1584,7 @@ fn eval_iterate( ctx.put_reg(stream, data); // put the stream back so it can be iterated on again Ok(InstructionResult::Continue) } else { - ctx.put_reg(dst, PipelineData::Empty); + ctx.put_reg(dst, PipelineData::empty()); Ok(InstructionResult::Branch(end_index)) } } else { @@ -1594,7 +1594,7 @@ fn eval_iterate( let span = data.span().unwrap_or(Span::unknown()); ctx.put_reg( stream, - PipelineData::ListStream( + PipelineData::list_stream( ListStream::new(data.into_iter(), span, Signals::EMPTY), metadata, ), diff --git a/crates/nu-explore/src/explore.rs b/crates/nu-explore/src/explore.rs index 8bbb7f2fda..47f174d6c1 100644 --- a/crates/nu-explore/src/explore.rs +++ b/crates/nu-explore/src/explore.rs @@ -88,8 +88,8 @@ impl Command for Explore { let result = run_pager(engine_state, &mut stack.clone(), input, config); match result { - Ok(Some(value)) => Ok(PipelineData::Value(value, None)), - Ok(None) => Ok(PipelineData::Value(Value::default(), None)), + Ok(Some(value)) => Ok(PipelineData::value(value, None)), + Ok(None) => Ok(PipelineData::value(Value::default(), None)), Err(err) => { let shell_error = match err.downcast::() { Ok(e) => e, @@ -102,7 +102,7 @@ impl Command for Explore { }, }; - Ok(PipelineData::Value( + Ok(PipelineData::value( Value::error(shell_error, call.head), None, )) diff --git a/crates/nu-explore/src/nu_common/command.rs b/crates/nu-explore/src/nu_common/command.rs index c86c686f29..ce7a453c53 100644 --- a/crates/nu-explore/src/nu_common/command.rs +++ b/crates/nu-explore/src/nu_common/command.rs @@ -23,7 +23,7 @@ pub fn run_command_with_value( }); } - let pipeline = PipelineData::Value(input.clone(), None); + let pipeline = PipelineData::value(input.clone(), None); let pipeline = run_nu_command(engine_state, stack, command, pipeline)?; if let PipelineData::Value(Value::Error { error, .. }, ..) = pipeline { Err(ShellError::GenericError { diff --git a/crates/nu-lsp/src/lib.rs b/crates/nu-lsp/src/lib.rs index 33e63a10a8..11647aa999 100644 --- a/crates/nu-lsp/src/lib.rs +++ b/crates/nu-lsp/src/lib.rs @@ -531,7 +531,7 @@ mod tests { engine_state, stack, &block, - PipelineData::Value(Value::nothing(Span::unknown()), None), + PipelineData::value(Value::nothing(Span::unknown()), None), ) .is_ok() ); diff --git a/crates/nu-plugin-core/src/interface/mod.rs b/crates/nu-plugin-core/src/interface/mod.rs index b493b84e14..f4c7cedfb6 100644 --- a/crates/nu-plugin-core/src/interface/mod.rs +++ b/crates/nu-plugin-core/src/interface/mod.rs @@ -184,20 +184,20 @@ pub trait InterfaceManager { signals: &Signals, ) -> Result { self.prepare_pipeline_data(match header { - PipelineDataHeader::Empty => PipelineData::Empty, - PipelineDataHeader::Value(value, metadata) => PipelineData::Value(value, metadata), + PipelineDataHeader::Empty => PipelineData::empty(), + PipelineDataHeader::Value(value, metadata) => PipelineData::value(value, metadata), PipelineDataHeader::ListStream(info) => { let handle = self.stream_manager().get_handle(); let reader = handle.read_stream(info.id, self.get_interface())?; let ls = ListStream::new(reader, info.span, signals.clone()); - PipelineData::ListStream(ls, info.metadata) + PipelineData::list_stream(ls, info.metadata) } PipelineDataHeader::ByteStream(info) => { let handle = self.stream_manager().get_handle(); let reader = handle.read_stream(info.id, self.get_interface())?; let bs = ByteStream::from_result_iter(reader, info.span, signals.clone(), info.type_); - PipelineData::ByteStream(bs, info.metadata) + PipelineData::byte_stream(bs, info.metadata) } }) } diff --git a/crates/nu-plugin-core/src/interface/tests.rs b/crates/nu-plugin-core/src/interface/tests.rs index 392d50ec5d..34c3a722dd 100644 --- a/crates/nu-plugin-core/src/interface/tests.rs +++ b/crates/nu-plugin-core/src/interface/tests.rs @@ -302,7 +302,7 @@ fn write_pipeline_data_empty() -> Result<(), ShellError> { let manager = TestInterfaceManager::new(&test); let interface = manager.get_interface(); - let (header, writer) = interface.init_write_pipeline_data(PipelineData::Empty, &())?; + let (header, writer) = interface.init_write_pipeline_data(PipelineData::empty(), &())?; assert!(matches!(header, PipelineDataHeader::Empty)); @@ -324,7 +324,7 @@ fn write_pipeline_data_value() -> Result<(), ShellError> { let value = Value::test_int(7); let (header, writer) = - interface.init_write_pipeline_data(PipelineData::Value(value.clone(), None), &())?; + interface.init_write_pipeline_data(PipelineData::value(value.clone(), None), &())?; match header { PipelineDataHeader::Value(read_value, _) => assert_eq!(value, read_value), @@ -349,7 +349,7 @@ fn write_pipeline_data_prepared_properly() { // Sending a binary should be an error in our test scenario let value = Value::test_binary(vec![7, 8]); - match interface.init_write_pipeline_data(PipelineData::Value(value, None), &()) { + match interface.init_write_pipeline_data(PipelineData::value(value, None), &()) { Ok(_) => panic!("prepare_pipeline_data was not called"), Err(err) => { assert_eq!( @@ -376,7 +376,7 @@ fn write_pipeline_data_list_stream() -> Result<(), ShellError> { ]; // Set up pipeline data for a list stream - let pipe = PipelineData::ListStream( + let pipe = PipelineData::list_stream( ListStream::new( values.clone().into_iter(), Span::test_data(), @@ -430,7 +430,7 @@ fn write_pipeline_data_byte_stream() -> Result<(), ShellError> { let span = Span::new(400, 500); // Set up pipeline data for a byte stream - let data = PipelineData::ByteStream( + let data = PipelineData::byte_stream( ByteStream::read( std::io::Cursor::new(expected), span, diff --git a/crates/nu-plugin-engine/src/context.rs b/crates/nu-plugin-engine/src/context.rs index 7bdc70f4d2..13c32e9fbd 100644 --- a/crates/nu-plugin-engine/src/context.rs +++ b/crates/nu-plugin-engine/src/context.rs @@ -117,7 +117,7 @@ impl PluginExecutionContext for PluginExecutionCommandContext<'_> { match value { Value::Closure { val, .. } => { ClosureEvalOnce::new(&self.engine_state, &self.stack, *val) - .run_with_input(PipelineData::Empty) + .run_with_input(PipelineData::empty()) .and_then(|data| data.into_value(span)) .unwrap_or_else(|err| Value::error(err, self.call.head)) } diff --git a/crates/nu-plugin-engine/src/interface/mod.rs b/crates/nu-plugin-engine/src/interface/mod.rs index 956bbb6a75..0c2a19b590 100644 --- a/crates/nu-plugin-engine/src/interface/mod.rs +++ b/crates/nu-plugin-engine/src/interface/mod.rs @@ -600,7 +600,7 @@ impl InterfaceManager for PluginInterfaceManager { } PipelineData::ListStream(stream, meta) => { let source = self.state.source.clone(); - Ok(PipelineData::ListStream( + Ok(PipelineData::list_stream( stream.map(move |mut value| { let _ = PluginCustomValueWithSource::add_source_in(&mut value, &source); value @@ -1101,12 +1101,12 @@ impl Interface for PluginInterface { match data { PipelineData::Value(mut value, meta) => { state.prepare_value(&mut value, &self.state.source)?; - Ok(PipelineData::Value(value, meta)) + Ok(PipelineData::value(value, meta)) } PipelineData::ListStream(stream, meta) => { let source = self.state.source.clone(); let state = state.clone(); - Ok(PipelineData::ListStream( + Ok(PipelineData::list_stream( stream.map(move |mut value| { match state.prepare_value(&mut value, &source) { Ok(()) => value, diff --git a/crates/nu-plugin-engine/src/interface/tests.rs b/crates/nu-plugin-engine/src/interface/tests.rs index b40593b983..a4b114bad8 100644 --- a/crates/nu-plugin-engine/src/interface/tests.rs +++ b/crates/nu-plugin-engine/src/interface/tests.rs @@ -646,7 +646,7 @@ fn manager_consume_stream_end_removes_context_only_if_last_stream() -> Result<() fn manager_prepare_pipeline_data_adds_source_to_values() -> Result<(), ShellError> { let manager = TestCase::new().plugin("test"); - let data = manager.prepare_pipeline_data(PipelineData::Value( + let data = manager.prepare_pipeline_data(PipelineData::value( Value::test_custom_value(Box::new(test_plugin_custom_value())), None, ))?; @@ -815,7 +815,7 @@ fn interface_write_plugin_call_writes_run_with_value_input() -> Result<(), Shell positional: vec![], named: vec![], }, - input: PipelineData::Value(Value::test_int(-1), Some(metadata0.clone())), + input: PipelineData::value(Value::test_int(-1), Some(metadata0.clone())), }), None, )?; @@ -1072,7 +1072,7 @@ fn interface_run() -> Result<(), ShellError> { start_fake_plugin_call_responder(manager, 1, move |_| { vec![ReceivedPluginCallMessage::Response( - PluginCallResponse::PipelineData(PipelineData::Value(Value::test_int(number), None)), + PluginCallResponse::PipelineData(PipelineData::value(Value::test_int(number), None)), )] }); @@ -1084,7 +1084,7 @@ fn interface_run() -> Result<(), ShellError> { positional: vec![], named: vec![], }, - input: PipelineData::Empty, + input: PipelineData::empty(), }, &mut PluginExecutionBogusContext, )?; @@ -1106,7 +1106,7 @@ fn interface_custom_value_to_base_value() -> Result<(), ShellError> { start_fake_plugin_call_responder(manager, 1, move |_| { vec![ReceivedPluginCallMessage::Response( - PluginCallResponse::PipelineData(PipelineData::Value(Value::test_string(string), None)), + PluginCallResponse::PipelineData(PipelineData::value(Value::test_string(string), None)), )] }); @@ -1137,7 +1137,7 @@ fn interface_prepare_pipeline_data_accepts_normal_values() -> Result<(), ShellEr let interface = TestCase::new().plugin("test").get_interface(); let state = CurrentCallState::default(); for value in normal_values(&interface) { - match interface.prepare_pipeline_data(PipelineData::Value(value.clone(), None), &state) { + match interface.prepare_pipeline_data(PipelineData::value(value.clone(), None), &state) { Ok(data) => assert_eq!( value.get_type(), data.into_value(Span::test_data())?.get_type(), @@ -1201,7 +1201,7 @@ fn interface_prepare_pipeline_data_rejects_bad_custom_value() -> Result<(), Shel let interface = TestCase::new().plugin("test").get_interface(); let state = CurrentCallState::default(); for value in bad_custom_values() { - match interface.prepare_pipeline_data(PipelineData::Value(value.clone(), None), &state) { + match interface.prepare_pipeline_data(PipelineData::value(value.clone(), None), &state) { Err(err) => match err { ShellError::CustomValueIncorrectForPlugin { .. } => (), _ => panic!("expected error type CustomValueIncorrectForPlugin, but got {err:?}"), @@ -1361,7 +1361,7 @@ fn prepare_plugin_call_run() { positional: vec![Value::test_int(4)], named: vec![("x".to_owned().into_spanned(span), Some(Value::test_int(6)))], }, - input: PipelineData::Empty, + input: PipelineData::empty(), }), ), ( @@ -1373,7 +1373,7 @@ fn prepare_plugin_call_run() { positional: vec![cv_ok.clone()], named: vec![("ok".to_owned().into_spanned(span), Some(cv_ok.clone()))], }, - input: PipelineData::Empty, + input: PipelineData::empty(), }), ), ( @@ -1385,7 +1385,7 @@ fn prepare_plugin_call_run() { positional: vec![cv_bad.clone()], named: vec![], }, - input: PipelineData::Empty, + input: PipelineData::empty(), }), ), ( @@ -1397,7 +1397,7 @@ fn prepare_plugin_call_run() { positional: vec![], named: vec![("bad".to_owned().into_spanned(span), Some(cv_bad.clone()))], }, - input: PipelineData::Empty, + input: PipelineData::empty(), }), ), ( @@ -1410,7 +1410,7 @@ fn prepare_plugin_call_run() { named: vec![], }, // Shouldn't check input - that happens somewhere else - input: PipelineData::Value(cv_bad.clone(), None), + input: PipelineData::value(cv_bad.clone(), None), }), ), ]; diff --git a/crates/nu-plugin-protocol/src/lib.rs b/crates/nu-plugin-protocol/src/lib.rs index 65bb95a55e..562795b9e1 100644 --- a/crates/nu-plugin-protocol/src/lib.rs +++ b/crates/nu-plugin-protocol/src/lib.rs @@ -84,7 +84,7 @@ pub enum PipelineDataHeader { /// /// Items are sent via [`StreamData`] ListStream(ListStreamInfo), - /// Initiate [`nu_protocol::PipelineData::ByteStream`]. + /// Initiate [`nu_protocol::PipelineData::byte_stream`]. /// /// Items are sent via [`StreamData`] ByteStream(ByteStreamInfo), @@ -650,11 +650,11 @@ impl EngineCallResponse { impl EngineCallResponse { /// Build an [`EngineCallResponse::PipelineData`] from a [`Value`] pub fn value(value: Value) -> EngineCallResponse { - EngineCallResponse::PipelineData(PipelineData::Value(value, None)) + EngineCallResponse::PipelineData(PipelineData::value(value, None)) } - /// An [`EngineCallResponse::PipelineData`] with [`PipelineData::Empty`] + /// An [`EngineCallResponse::PipelineData`] with [`PipelineData::empty()`] pub const fn empty() -> EngineCallResponse { - EngineCallResponse::PipelineData(PipelineData::Empty) + EngineCallResponse::PipelineData(PipelineData::empty()) } } diff --git a/crates/nu-plugin-test-support/src/plugin_test.rs b/crates/nu-plugin-test-support/src/plugin_test.rs index ad0f555fbd..fa604d2025 100644 --- a/crates/nu-plugin-test-support/src/plugin_test.rs +++ b/crates/nu-plugin-test-support/src/plugin_test.rs @@ -194,7 +194,7 @@ impl PluginTest { /// # } /// ``` pub fn eval(&mut self, nu_source: &str) -> Result { - self.eval_with(nu_source, PipelineData::Empty) + self.eval_with(nu_source, PipelineData::empty()) } /// Test a list of plugin examples. Prints an error for each failing example. diff --git a/crates/nu-plugin-test-support/tests/custom_value/mod.rs b/crates/nu-plugin-test-support/tests/custom_value/mod.rs index 3547b986e7..beba4ebd34 100644 --- a/crates/nu-plugin-test-support/tests/custom_value/mod.rs +++ b/crates/nu-plugin-test-support/tests/custom_value/mod.rs @@ -145,7 +145,7 @@ fn test_into_int_from_u32() -> Result<(), ShellError> { let result = PluginTest::new("custom_u32", CustomU32Plugin.into())? .eval_with( "into int from u32", - PipelineData::Value(CustomU32(42).into_value(Span::test_data()), None), + PipelineData::value(CustomU32(42).into_value(Span::test_data()), None), )? .into_value(Span::test_data())?; assert_eq!(Value::test_int(42), result); diff --git a/crates/nu-plugin/src/plugin/command.rs b/crates/nu-plugin/src/plugin/command.rs index d40005fa52..4638b6dae8 100644 --- a/crates/nu-plugin/src/plugin/command.rs +++ b/crates/nu-plugin/src/plugin/command.rs @@ -320,9 +320,9 @@ where // simpler signature in Plugin let span = input.span().unwrap_or(call.head); let input_value = input.into_value(span)?; - // Wrap the output in PipelineData::Value + // Wrap the output in PipelineData::value ::run(self, plugin, engine, call, &input_value) - .map(|value| PipelineData::Value(value, None)) + .map(|value| PipelineData::value(value, None)) } fn search_terms(&self) -> Vec<&str> { diff --git a/crates/nu-plugin/src/plugin/interface/mod.rs b/crates/nu-plugin/src/plugin/interface/mod.rs index d1c0d502f6..b956bbc36b 100644 --- a/crates/nu-plugin/src/plugin/interface/mod.rs +++ b/crates/nu-plugin/src/plugin/interface/mod.rs @@ -367,7 +367,7 @@ impl InterfaceManager for EngineInterfaceManager { .map(|()| value) .unwrap_or_else(|err| Value::error(err, span)) }); - Ok(PipelineData::ListStream(stream, meta)) + Ok(PipelineData::list_stream(stream, meta)) } PipelineData::Empty | PipelineData::ByteStream(..) => Ok(data), } @@ -557,8 +557,8 @@ impl EngineInterface { } } - /// Do an engine call returning an `Option` as either `PipelineData::Empty` or - /// `PipelineData::Value` + /// Do an engine call returning an `Option` as either `PipelineData::empty()` or + /// `PipelineData::value` fn engine_call_option_value( &self, engine_call: EngineCall, @@ -786,7 +786,7 @@ impl EngineInterface { /// # use nu_plugin::{EngineInterface, EvaluatedCall}; /// # fn example(engine: &EngineInterface, call: &EvaluatedCall) -> Result<(), ShellError> { /// let closure = call.req(0)?; - /// let input = PipelineData::Value(Value::int(4, call.head), None); + /// let input = PipelineData::value(Value::int(4, call.head), None); /// let output = engine.eval_closure_with_stream( /// &closure, /// vec![], @@ -885,7 +885,7 @@ impl EngineInterface { positional: Vec, input: Option, ) -> Result { - let input = input.map_or_else(|| PipelineData::Empty, |v| PipelineData::Value(v, None)); + let input = input.map_or_else(PipelineData::empty, |v| PipelineData::value(v, None)); let output = self.eval_closure_with_stream(closure, positional, input, true, false)?; // Unwrap an error value match output.into_value(closure.span)? { @@ -924,7 +924,7 @@ impl EngineInterface { /// let commands = engine.call_decl( /// decl_id, /// EvaluatedCall::new(call.head), - /// PipelineData::Empty, + /// PipelineData::empty(), /// true, /// false, /// )?; @@ -1025,7 +1025,7 @@ impl Interface for EngineInterface { .map(|_| value) .unwrap_or_else(|err| Value::error(err, span)) }); - Ok(PipelineData::ListStream(stream, meta)) + Ok(PipelineData::list_stream(stream, meta)) } PipelineData::Empty | PipelineData::ByteStream(..) => Ok(data), } diff --git a/crates/nu-plugin/src/plugin/interface/tests.rs b/crates/nu-plugin/src/plugin/interface/tests.rs index 7165753a70..42f8c59555 100644 --- a/crates/nu-plugin/src/plugin/interface/tests.rs +++ b/crates/nu-plugin/src/plugin/interface/tests.rs @@ -583,7 +583,7 @@ fn manager_consume_engine_call_response_forwards_to_subscriber_with_pipeline_dat fn manager_prepare_pipeline_data_deserializes_custom_values() -> Result<(), ShellError> { let manager = TestCase::new().engine(); - let data = manager.prepare_pipeline_data(PipelineData::Value( + let data = manager.prepare_pipeline_data(PipelineData::value( Value::test_custom_value(Box::new(test_plugin_custom_value())), None, ))?; @@ -690,7 +690,7 @@ fn interface_write_response_with_value() -> Result<(), ShellError> { let test = TestCase::new(); let interface = test.engine().interface_for_context(33); interface - .write_response(Ok::<_, ShellError>(PipelineData::Value( + .write_response(Ok::<_, ShellError>(PipelineData::value( Value::test_int(6), None, )))? @@ -901,9 +901,9 @@ fn interface_get_plugin_config() -> Result<(), ShellError> { start_fake_plugin_call_responder(manager, 2, |id| { if id == 0 { - EngineCallResponse::PipelineData(PipelineData::Empty) + EngineCallResponse::PipelineData(PipelineData::empty()) } else { - EngineCallResponse::PipelineData(PipelineData::Value(Value::test_int(2), None)) + EngineCallResponse::PipelineData(PipelineData::value(Value::test_int(2), None)) } }); @@ -1038,7 +1038,7 @@ fn interface_eval_closure_with_stream() -> Result<(), ShellError> { let interface = manager.interface_for_context(0); start_fake_plugin_call_responder(manager, 1, |_| { - EngineCallResponse::PipelineData(PipelineData::Value(Value::test_int(2), None)) + EngineCallResponse::PipelineData(PipelineData::value(Value::test_int(2), None)) }); let result = interface @@ -1051,7 +1051,7 @@ fn interface_eval_closure_with_stream() -> Result<(), ShellError> { span: Span::test_data(), }, vec![Value::test_string("test")], - PipelineData::Empty, + PipelineData::empty(), true, false, )? @@ -1100,7 +1100,7 @@ fn interface_prepare_pipeline_data_serializes_custom_values() -> Result<(), Shel let interface = TestCase::new().engine().get_interface(); let data = interface.prepare_pipeline_data( - PipelineData::Value( + PipelineData::value( Value::test_custom_value(Box::new(expected_test_custom_value())), None, ), diff --git a/crates/nu-plugin/src/plugin/mod.rs b/crates/nu-plugin/src/plugin/mod.rs index a8dbb4d027..7eff40d1a5 100644 --- a/crates/nu-plugin/src/plugin/mod.rs +++ b/crates/nu-plugin/src/plugin/mod.rs @@ -600,7 +600,7 @@ fn custom_value_op( CustomValueOp::ToBaseValue => { let result = plugin .custom_value_to_base_value(engine, local_value) - .map(|value| PipelineData::Value(value, None)); + .map(|value| PipelineData::value(value, None)); engine .write_response(result) .and_then(|writer| writer.write()) @@ -608,7 +608,7 @@ fn custom_value_op( CustomValueOp::FollowPathInt(index) => { let result = plugin .custom_value_follow_path_int(engine, local_value, index) - .map(|value| PipelineData::Value(value, None)); + .map(|value| PipelineData::value(value, None)); engine .write_response(result) .and_then(|writer| writer.write()) @@ -616,7 +616,7 @@ fn custom_value_op( CustomValueOp::FollowPathString(column_name) => { let result = plugin .custom_value_follow_path_string(engine, local_value, column_name) - .map(|value| PipelineData::Value(value, None)); + .map(|value| PipelineData::value(value, None)); engine .write_response(result) .and_then(|writer| writer.write()) @@ -634,7 +634,7 @@ fn custom_value_op( PluginCustomValue::deserialize_custom_values_in(&mut right)?; let result = plugin .custom_value_operation(engine, local_value, operator, right) - .map(|value| PipelineData::Value(value, None)); + .map(|value| PipelineData::value(value, None)); engine .write_response(result) .and_then(|writer| writer.write()) @@ -642,7 +642,7 @@ fn custom_value_op( CustomValueOp::Dropped => { let result = plugin .custom_value_dropped(engine, local_value.item) - .map(|_| PipelineData::Empty); + .map(|_| PipelineData::empty()); engine .write_response(result) .and_then(|writer| writer.write()) diff --git a/crates/nu-protocol/src/eval_const.rs b/crates/nu-protocol/src/eval_const.rs index 4dcfe40f30..ce1bbf24ab 100644 --- a/crates/nu-protocol/src/eval_const.rs +++ b/crates/nu-protocol/src/eval_const.rs @@ -417,7 +417,7 @@ pub fn eval_constant_with_input( let block = working_set.get_block(*block_id); eval_const_subexpression(working_set, block, input, expr.span(&working_set)) } - _ => eval_constant(working_set, expr).map(|v| PipelineData::Value(v, None)), + _ => eval_constant(working_set, expr).map(|v| PipelineData::value(v, None)), } } diff --git a/crates/nu-protocol/src/pipeline/byte_stream.rs b/crates/nu-protocol/src/pipeline/byte_stream.rs index 2d3e412e7f..d12f410fb3 100644 --- a/crates/nu-protocol/src/pipeline/byte_stream.rs +++ b/crates/nu-protocol/src/pipeline/byte_stream.rs @@ -737,7 +737,7 @@ impl ByteStream { impl From for PipelineData { fn from(stream: ByteStream) -> Self { - Self::ByteStream(stream, None) + Self::byte_stream(stream, None) } } diff --git a/crates/nu-protocol/src/pipeline/list_stream.rs b/crates/nu-protocol/src/pipeline/list_stream.rs index f300a443d6..283c0d81cb 100644 --- a/crates/nu-protocol/src/pipeline/list_stream.rs +++ b/crates/nu-protocol/src/pipeline/list_stream.rs @@ -139,7 +139,7 @@ impl IntoIterator for ListStream { impl From for PipelineData { fn from(stream: ListStream) -> Self { - Self::ListStream(stream, None) + Self::list_stream(stream, None) } } diff --git a/crates/nu-protocol/src/pipeline/pipeline_data.rs b/crates/nu-protocol/src/pipeline/pipeline_data.rs index c5a0f34051..f8f62c56af 100644 --- a/crates/nu-protocol/src/pipeline/pipeline_data.rs +++ b/crates/nu-protocol/src/pipeline/pipeline_data.rs @@ -48,10 +48,22 @@ pub enum PipelineData { } impl PipelineData { - pub fn empty() -> PipelineData { + pub const fn empty() -> PipelineData { PipelineData::Empty } + pub fn value(val: Value, metadata: impl Into>) -> Self { + PipelineData::Value(val, metadata.into()) + } + + pub fn list_stream(stream: ListStream, metadata: impl Into>) -> Self { + PipelineData::ListStream(stream, metadata.into()) + } + + pub fn byte_stream(stream: ByteStream, metadata: impl Into>) -> Self { + PipelineData::ByteStream(stream, metadata.into()) + } + pub fn metadata(&self) -> Option { match self { PipelineData::Empty => None, @@ -88,18 +100,18 @@ impl PipelineData { /// Change the span of the [`PipelineData`]. /// - /// Returns `Value(Nothing)` with the given span if it was [`PipelineData::Empty`]. + /// Returns `Value(Nothing)` with the given span if it was [`PipelineData::empty()`]. pub fn with_span(self, span: Span) -> Self { match self { - PipelineData::Empty => PipelineData::Value(Value::nothing(span), None), + PipelineData::Empty => PipelineData::value(Value::nothing(span), None), PipelineData::Value(value, metadata) => { - PipelineData::Value(value.with_span(span), metadata) + PipelineData::value(value.with_span(span), metadata) } PipelineData::ListStream(stream, metadata) => { - PipelineData::ListStream(stream.with_span(span), metadata) + PipelineData::list_stream(stream.with_span(span), metadata) } PipelineData::ByteStream(stream, metadata) => { - PipelineData::ByteStream(stream.with_span(span), metadata) + PipelineData::byte_stream(stream.with_span(span), metadata) } } } @@ -191,19 +203,19 @@ impl PipelineData { PipelineData::ListStream(..) | PipelineData::ByteStream(..) => Ok(self), PipelineData::Value(Value::List { .. } | Value::Range { .. }, ref metadata) => { let metadata = metadata.clone(); - Ok(PipelineData::ListStream( + Ok(PipelineData::list_stream( ListStream::new(self.into_iter(), span, engine_state.signals().clone()), metadata, )) } PipelineData::Value(Value::String { val, .. }, metadata) => { - Ok(PipelineData::ByteStream( + Ok(PipelineData::byte_stream( ByteStream::read_string(val, span, engine_state.signals().clone()), metadata, )) } PipelineData::Value(Value::Binary { val, .. }, metadata) => { - Ok(PipelineData::ByteStream( + Ok(PipelineData::byte_stream( ByteStream::read_binary(val, span, engine_state.signals().clone()), metadata, )) @@ -454,9 +466,9 @@ impl PipelineData { }; Ok(pipeline.set_metadata(metadata)) } - PipelineData::Empty => Ok(PipelineData::Empty), + PipelineData::Empty => Ok(PipelineData::empty()), PipelineData::ListStream(stream, metadata) => { - Ok(PipelineData::ListStream(stream.map(f), metadata)) + Ok(PipelineData::list_stream(stream.map(f), metadata)) } PipelineData::ByteStream(stream, metadata) => { Ok(f(stream.into_value()?).into_pipeline_data_with_metadata(metadata)) @@ -473,7 +485,7 @@ impl PipelineData { F: FnMut(Value) -> U + 'static + Send, { match self { - PipelineData::Empty => Ok(PipelineData::Empty), + PipelineData::Empty => Ok(PipelineData::empty()), PipelineData::Value(value, metadata) => { let span = value.span(); let pipeline = match value { @@ -491,7 +503,7 @@ impl PipelineData { }; Ok(pipeline.set_metadata(metadata)) } - PipelineData::ListStream(stream, metadata) => Ok(PipelineData::ListStream( + PipelineData::ListStream(stream, metadata) => Ok(PipelineData::list_stream( stream.modify(|iter| iter.flat_map(f)), metadata, )), @@ -520,7 +532,7 @@ impl PipelineData { F: FnMut(&Value) -> bool + 'static + Send, { match self { - PipelineData::Empty => Ok(PipelineData::Empty), + PipelineData::Empty => Ok(PipelineData::empty()), PipelineData::Value(value, metadata) => { let span = value.span(); let pipeline = match value { @@ -542,7 +554,7 @@ impl PipelineData { }; Ok(pipeline.set_metadata(metadata)) } - PipelineData::ListStream(stream, metadata) => Ok(PipelineData::ListStream( + PipelineData::ListStream(stream, metadata) => Ok(PipelineData::list_stream( stream.modify(|iter| iter.filter(f)), metadata, )), @@ -602,9 +614,9 @@ impl PipelineData { } let range_values: Vec = val.into_range_iter(span, Signals::empty()).collect(); - Ok(PipelineData::Value(Value::list(range_values, span), None)) + Ok(PipelineData::value(Value::list(range_values, span), None)) } - x => Ok(PipelineData::Value(x, metadata)), + x => Ok(PipelineData::value(x, metadata)), } } _ => Ok(self), @@ -874,14 +886,14 @@ where V: Into, { fn into_pipeline_data(self) -> PipelineData { - PipelineData::Value(self.into(), None) + PipelineData::value(self.into(), None) } fn into_pipeline_data_with_metadata( self, metadata: impl Into>, ) -> PipelineData { - PipelineData::Value(self.into(), metadata.into()) + PipelineData::value(self.into(), metadata.into()) } } @@ -911,7 +923,7 @@ where signals: Signals, metadata: impl Into>, ) -> PipelineData { - PipelineData::ListStream( + PipelineData::list_stream( ListStream::new(self.into_iter().map(Into::into), span, signals), metadata.into(), ) diff --git a/crates/nu_plugin_example/src/commands/collect_bytes.rs b/crates/nu_plugin_example/src/commands/collect_bytes.rs index 16cb205571..c37cc78bfa 100644 --- a/crates/nu_plugin_example/src/commands/collect_bytes.rs +++ b/crates/nu_plugin_example/src/commands/collect_bytes.rs @@ -48,7 +48,7 @@ impl PluginCommand for CollectBytes { call: &EvaluatedCall, input: PipelineData, ) -> Result { - Ok(PipelineData::ByteStream( + Ok(PipelineData::byte_stream( ByteStream::from_result_iter( input.into_iter().map(Value::coerce_into_binary), call.head, diff --git a/crates/nu_plugin_example/src/commands/ctrlc.rs b/crates/nu_plugin_example/src/commands/ctrlc.rs index 4170853d57..20445351c7 100644 --- a/crates/nu_plugin_example/src/commands/ctrlc.rs +++ b/crates/nu_plugin_example/src/commands/ctrlc.rs @@ -45,6 +45,6 @@ impl PluginCommand for Ctrlc { eprintln!("interrupt status: {:?}", engine.signals().interrupted()); eprintln!("peace."); - Ok(PipelineData::Empty) + Ok(PipelineData::empty()) } } diff --git a/crates/nu_plugin_example/src/commands/for_each.rs b/crates/nu_plugin_example/src/commands/for_each.rs index 20bf7e9f12..a7ad5c5317 100644 --- a/crates/nu_plugin_example/src/commands/for_each.rs +++ b/crates/nu_plugin_example/src/commands/for_each.rs @@ -53,7 +53,7 @@ impl PluginCommand for ForEach { let result = engine.eval_closure(&closure, vec![value.clone()], Some(value))?; eprintln!("{}", result.to_expanded_string(", ", &config)); } - Ok(PipelineData::Empty) + Ok(PipelineData::empty()) } } diff --git a/crates/nu_plugin_example/src/commands/sum.rs b/crates/nu_plugin_example/src/commands/sum.rs index c4d4af53d0..4ec5ba9d71 100644 --- a/crates/nu_plugin_example/src/commands/sum.rs +++ b/crates/nu_plugin_example/src/commands/sum.rs @@ -57,7 +57,7 @@ impl PluginCommand for Sum { .with_label("can't be used here", call.head)); } } - Ok(PipelineData::Value(acc.to_value(call.head), None)) + Ok(PipelineData::value(acc.to_value(call.head), None)) } } diff --git a/crates/nu_plugin_polars/src/cache/get.rs b/crates/nu_plugin_polars/src/cache/get.rs index bb948d2cfb..ee97ab24ff 100644 --- a/crates/nu_plugin_polars/src/cache/get.rs +++ b/crates/nu_plugin_polars/src/cache/get.rs @@ -72,7 +72,7 @@ impl PluginCommand for CacheGet { Value::nothing(call.head) }; - Ok(PipelineData::Value(value, None)) + Ok(PipelineData::value(value, None)) } } diff --git a/crates/nu_plugin_polars/src/cache/rm.rs b/crates/nu_plugin_polars/src/cache/rm.rs index 7b572bef50..35fa5385ae 100644 --- a/crates/nu_plugin_polars/src/cache/rm.rs +++ b/crates/nu_plugin_polars/src/cache/rm.rs @@ -50,7 +50,7 @@ impl PluginCommand for CacheRemove { .map(|ref key| remove_cache_entry(plugin, engine, key, call.head)) .collect::, ShellError>>()?; - Ok(PipelineData::Value(Value::list(msgs, call.head), None)) + Ok(PipelineData::value(Value::list(msgs, call.head), None)) } } diff --git a/crates/nu_plugin_polars/src/dataframe/command/core/columns.rs b/crates/nu_plugin_polars/src/dataframe/command/core/columns.rs index 8dc36f41f6..e62a4402b7 100644 --- a/crates/nu_plugin_polars/src/dataframe/command/core/columns.rs +++ b/crates/nu_plugin_polars/src/dataframe/command/core/columns.rs @@ -67,7 +67,7 @@ fn command( let names = Value::list(names, call.head); - Ok(PipelineData::Value(names, None)) + Ok(PipelineData::value(names, None)) } #[cfg(test)] diff --git a/crates/nu_plugin_polars/src/dataframe/command/core/open.rs b/crates/nu_plugin_polars/src/dataframe/command/core/open.rs index 7f450794d1..985e119f06 100644 --- a/crates/nu_plugin_polars/src/dataframe/command/core/open.rs +++ b/crates/nu_plugin_polars/src/dataframe/command/core/open.rs @@ -205,7 +205,7 @@ fn command( "File without extension", ))), } - .map(|value| PipelineData::Value(value, Some(metadata))) + .map(|value| PipelineData::value(value, Some(metadata))) } fn from_parquet( diff --git a/crates/nu_plugin_polars/src/dataframe/command/core/profile.rs b/crates/nu_plugin_polars/src/dataframe/command/core/profile.rs index 41355f7f79..9722d161ba 100644 --- a/crates/nu_plugin_polars/src/dataframe/command/core/profile.rs +++ b/crates/nu_plugin_polars/src/dataframe/command/core/profile.rs @@ -107,5 +107,5 @@ fn command_lazy( call.head, ); - Ok(PipelineData::Value(result, None)) + Ok(PipelineData::value(result, None)) } diff --git a/crates/nu_plugin_polars/src/dataframe/command/core/schema.rs b/crates/nu_plugin_polars/src/dataframe/command/core/schema.rs index 80cdccfeaa..e7d6606296 100644 --- a/crates/nu_plugin_polars/src/dataframe/command/core/schema.rs +++ b/crates/nu_plugin_polars/src/dataframe/command/core/schema.rs @@ -51,7 +51,7 @@ impl PluginCommand for SchemaCmd { input: PipelineData, ) -> Result { if call.has_flag("datatype-list")? { - Ok(PipelineData::Value(datatype_list(Span::unknown()), None)) + Ok(PipelineData::value(datatype_list(Span::unknown()), None)) } else { command(plugin, engine, call, input).map_err(LabeledError::from) } @@ -68,12 +68,12 @@ fn command( PolarsPluginObject::NuDataFrame(df) => { let schema = df.schema(); let value = schema.base_value(call.head)?; - Ok(PipelineData::Value(value, None)) + Ok(PipelineData::value(value, None)) } PolarsPluginObject::NuLazyFrame(mut lazy) => { let schema = lazy.schema()?; let value = schema.base_value(call.head)?; - Ok(PipelineData::Value(value, None)) + Ok(PipelineData::value(value, None)) } _ => Err(ShellError::GenericError { error: "Must be a dataframe or lazy dataframe".into(), diff --git a/crates/nu_plugin_polars/src/dataframe/command/core/to_lazy.rs b/crates/nu_plugin_polars/src/dataframe/command/core/to_lazy.rs index 23bc354dc6..91e54e0ef3 100644 --- a/crates/nu_plugin_polars/src/dataframe/command/core/to_lazy.rs +++ b/crates/nu_plugin_polars/src/dataframe/command/core/to_lazy.rs @@ -85,7 +85,7 @@ impl PluginCommand for ToLazyFrame { let mut lazy = NuLazyFrame::from_dataframe(df); // We don't want this converted back to an eager dataframe at some point lazy.from_eager = false; - Ok(PipelineData::Value( + Ok(PipelineData::value( lazy.cache(plugin, engine, call.head)?.into_value(call.head), None, )) diff --git a/crates/nu_plugin_polars/src/dataframe/command/core/to_nu.rs b/crates/nu_plugin_polars/src/dataframe/command/core/to_nu.rs index d74c0e7e1f..0881c91e00 100644 --- a/crates/nu_plugin_polars/src/dataframe/command/core/to_nu.rs +++ b/crates/nu_plugin_polars/src/dataframe/command/core/to_nu.rs @@ -106,15 +106,15 @@ fn command( PolarsPluginObject::NuLazyFrame(lazy) => dataframe_command(call, lazy.collect(call.head)?), PolarsPluginObject::NuExpression(expr) => { let value = expr.to_value(call.head)?; - Ok(PipelineData::Value(value, None)) + Ok(PipelineData::value(value, None)) } PolarsPluginObject::NuDataType(dt) => { let value = dt.base_value(call.head)?; - Ok(PipelineData::Value(value, None)) + Ok(PipelineData::value(value, None)) } PolarsPluginObject::NuSchema(schema) => { let value = schema.base_value(call.head)?; - Ok(PipelineData::Value(value, None)) + Ok(PipelineData::value(value, None)) } _ => Err(cant_convert_err( &value, @@ -147,7 +147,7 @@ fn dataframe_command(call: &EvaluatedCall, df: NuDataFrame) -> Result Result { let df = NuDataFrame::try_from_value_coerce(plugin, &input, call.head)?; let value = Value::string(format!("{df}"), call.head); - Ok(PipelineData::Value(value, None)) + Ok(PipelineData::value(value, None)) } #[cfg(test)] diff --git a/crates/nu_plugin_polars/src/dataframe/command/data/collect.rs b/crates/nu_plugin_polars/src/dataframe/command/data/collect.rs index b899e5e08b..45290da9c2 100644 --- a/crates/nu_plugin_polars/src/dataframe/command/data/collect.rs +++ b/crates/nu_plugin_polars/src/dataframe/command/data/collect.rs @@ -69,7 +69,7 @@ impl PluginCommand for LazyCollect { let mut eager = lazy.collect(call.head)?; // We don't want this converted back to a lazy frame eager.from_lazy = true; - Ok(PipelineData::Value( + Ok(PipelineData::value( eager .cache(plugin, engine, call.head)? .into_value(call.head), @@ -94,7 +94,7 @@ impl PluginCommand for LazyCollect { let df = NuDataFrame::from_cache_value(cv.value.clone())?; // just return the dataframe, add to cache again to be safe - Ok(PipelineData::Value(df.into_value(call.head), None)) + Ok(PipelineData::value(df.into_value(call.head), None)) } _ => Err(cant_convert_err( &value, diff --git a/crates/nu_plugin_polars/src/dataframe/command/stub.rs b/crates/nu_plugin_polars/src/dataframe/command/stub.rs index 921ce3bd3d..c131d39d1f 100644 --- a/crates/nu_plugin_polars/src/dataframe/command/stub.rs +++ b/crates/nu_plugin_polars/src/dataframe/command/stub.rs @@ -48,7 +48,7 @@ to the `polars agg` command with some column expressions for aggregation which t call: &EvaluatedCall, _input: PipelineData, ) -> Result { - Ok(PipelineData::Value( + Ok(PipelineData::value( Value::string(engine.get_help()?, call.head), None, )) diff --git a/crates/nu_plugin_polars/src/dataframe/values/mod.rs b/crates/nu_plugin_polars/src/dataframe/values/mod.rs index 643b9d035f..e3bd948640 100644 --- a/crates/nu_plugin_polars/src/dataframe/values/mod.rs +++ b/crates/nu_plugin_polars/src/dataframe/values/mod.rs @@ -406,7 +406,7 @@ pub trait CustomValueSupport: Cacheable { engine: &EngineInterface, span: Span, ) -> Result { - Ok(PipelineData::Value( + Ok(PipelineData::value( self.cache_and_to_value(plugin, engine, span)?, None, )) diff --git a/src/main.rs b/src/main.rs index 520c0ba6af..0e9785c5c9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -403,7 +403,7 @@ fn main() -> Result<()> { start_time = std::time::Instant::now(); let input = if let Some(redirect_stdin) = &parsed_nu_cli_args.redirect_stdin { trace!("redirecting stdin"); - PipelineData::ByteStream(ByteStream::stdin(redirect_stdin.span)?, None) + PipelineData::byte_stream(ByteStream::stdin(redirect_stdin.span)?, None) } else { trace!("not redirecting stdin"); PipelineData::empty()