mirror of
https://github.com/nushell/nushell.git
synced 2025-08-12 03:50:24 +02:00
Add and use new Signals
struct (#13314)
# Description This PR introduces a new `Signals` struct to replace our adhoc passing around of `ctrlc: Option<Arc<AtomicBool>>`. Doing so has a few benefits: - We can better enforce when/where resetting or triggering an interrupt is allowed. - Consolidates `nu_utils::ctrl_c::was_pressed` and other ad-hoc re-implementations into a single place: `Signals::check`. - This allows us to add other types of signals later if we want. E.g., exiting or suspension. - Similarly, we can more easily change the underlying implementation if we need to in the future. - Places that used to have a `ctrlc` of `None` now use `Signals::empty()`, so we can double check these usages for correctness in the future.
This commit is contained in:
@ -8,8 +8,8 @@
|
||||
//! use nu_plugin::*;
|
||||
//! use nu_plugin_test_support::PluginTest;
|
||||
//! use nu_protocol::{
|
||||
//! Example, IntoInterruptiblePipelineData, LabeledError, PipelineData, ShellError, Signature,
|
||||
//! Span, Type, Value,
|
||||
//! Example, IntoInterruptiblePipelineData, LabeledError, PipelineData, ShellError, Signals,
|
||||
//! Signature, Span, Type, Value,
|
||||
//! };
|
||||
//!
|
||||
//! struct LowercasePlugin;
|
||||
@ -60,7 +60,7 @@
|
||||
//! // Errors in a stream should be returned as values.
|
||||
//! .unwrap_or_else(|err| Value::error(err, span))
|
||||
//! },
|
||||
//! None,
|
||||
//! &Signals::empty(),
|
||||
//! )?)
|
||||
//! }
|
||||
//! }
|
||||
@ -83,7 +83,7 @@
|
||||
//!
|
||||
//! // #[test]
|
||||
//! fn test_lowercase() -> Result<(), ShellError> {
|
||||
//! let input = vec![Value::test_string("FooBar")].into_pipeline_data(Span::test_data(), None);
|
||||
//! let input = vec![Value::test_string("FooBar")].into_pipeline_data(Span::test_data(), Signals::empty());
|
||||
//! let output = PluginTest::new("lowercase", LowercasePlugin.into())?
|
||||
//! .eval_with("lowercase", input)?
|
||||
//! .into_value(Span::test_data())?;
|
||||
|
Reference in New Issue
Block a user