nushell/crates
Thomas Coratger 0bd4d27e8d
Modify reject algorithm for identical elements (#8446)
# Description

The correction made here concerns the issue #8431. Indeed, the algorithm
initially proposed to remove elements of a `vector` performed a loop
with `remove` and an incident therefore appeared when several values
were equal because the deletion was done outside the length of the
vector:
```rust
let mut found = false;
for (i, col) in cols.clone().iter().enumerate() {
    if col == col_name {
        cols.remove(i);
        vals.remove(i);
        found = true;
    }
}

```

Then, `[[a, a]; [1, 2]] | reject a: ` gave `thread 'main' panicked at
'removal index (is 1) should be < len (is 1)',
crates/nu-protocol/src/value/mod.rs:1213:54`.

The proposed correction is therefore the implementation of the
`retain_mut` utility dedicated to this functionality.

```rust
let mut found = false;
let mut index = 0;
cols.retain_mut(|col| {
    if col == col_name {
        found = true;
        vals.remove(index);
        false
    } else {
        index += 1;
        true
    }
});
```
2023-03-14 23:26:48 +01:00
..
nu_plugin_custom_values Bump to 0.77.1 development version (#8453) 2023-03-14 23:26:08 +01:00
nu_plugin_example Bump to 0.77.1 development version (#8453) 2023-03-14 23:26:08 +01:00
nu_plugin_formats Bump to 0.77.1 development version (#8453) 2023-03-14 23:26:08 +01:00
nu_plugin_gstat Bump to 0.77.1 development version (#8453) 2023-03-14 23:26:08 +01:00
nu_plugin_inc Bump to 0.77.1 development version (#8453) 2023-03-14 23:26:08 +01:00
nu_plugin_python update nu_plugin_python due to signature changes (#8107) 2023-02-18 13:27:24 +00:00
nu_plugin_query Bump to 0.77.1 development version (#8453) 2023-03-14 23:26:08 +01:00
nu-cli Bump to 0.77.1 development version (#8453) 2023-03-14 23:26:08 +01:00
nu-cmd-lang Bump to 0.77.1 development version (#8453) 2023-03-14 23:26:08 +01:00
nu-color-config Bump to 0.77.1 development version (#8453) 2023-03-14 23:26:08 +01:00
nu-command Modify reject algorithm for identical elements (#8446) 2023-03-14 23:26:48 +01:00
nu-engine Bump to 0.77.1 development version (#8453) 2023-03-14 23:26:08 +01:00
nu-explore Bump to 0.77.1 development version (#8453) 2023-03-14 23:26:08 +01:00
nu-glob Bump to 0.77.1 development version (#8453) 2023-03-14 23:26:08 +01:00
nu-json Bump to 0.77.1 development version (#8453) 2023-03-14 23:26:08 +01:00
nu-parser Bump to 0.77.1 development version (#8453) 2023-03-14 23:26:08 +01:00
nu-path Bump to 0.77.1 development version (#8453) 2023-03-14 23:26:08 +01:00
nu-plugin Bump to 0.77.1 development version (#8453) 2023-03-14 23:26:08 +01:00
nu-pretty-hex Bump to 0.77.1 development version (#8453) 2023-03-14 23:26:08 +01:00
nu-protocol Modify reject algorithm for identical elements (#8446) 2023-03-14 23:26:48 +01:00
nu-system Bump to 0.77.1 development version (#8453) 2023-03-14 23:26:08 +01:00
nu-table Bump to 0.77.1 development version (#8453) 2023-03-14 23:26:08 +01:00
nu-term-grid Bump to 0.77.1 development version (#8453) 2023-03-14 23:26:08 +01:00
nu-test-support Bump to 0.77.1 development version (#8453) 2023-03-14 23:26:08 +01:00
nu-utils Bump to 0.77.1 development version (#8453) 2023-03-14 23:26:08 +01:00
README.md Remove old nushell/merge engine-q 2022-02-07 14:54:06 -05:00

Nushell core libraries and plugins

These sub-crates form both the foundation for Nu and a set of plugins which extend Nu with additional functionality.

Foundational libraries are split into two kinds of crates:

  • Core crates - those crates that work together to build the Nushell language engine
  • Support crates - a set of crates that support the engine with additional features like JSON support, ANSI support, and more.

Plugins are likewise also split into two types:

  • Core plugins - plugins that provide part of the default experience of Nu, including access to the system properties, processes, and web-connectivity features.
  • Extra plugins - these plugins run a wide range of different capabilities like working with different file types, charting, viewing binary data, and more.