nushell/crates
Stefan Holderbach 005180f269
Add Record::remove/retain/retain_mut (#10876)
# Description
While we have now a few ways to add items or iterate over the
collection, we don't have a way to cleanly remove items from `Record`.

This PR fixes that:

- Add `Record.remove()` to remove by key
- makes the assumption that keys are unique, so can not be used
universally, yet (see #10875 for an important example)
- Add naive `Record.retain()` for inplace removal
- This follows the two separate `retain`/`retain_mut` in the Rust std
library types, compared to the value-mutating `retain` in `indexmap`
- Add `Record.retain_mut()` for one-pass pruning

Continuation of #10841 

# User-Facing Changes
None yet.

# Tests + Formatting
Doctests for the `retain`ing fun
2023-10-30 19:51:28 +01:00
..
nu_plugin_custom_values Bump version to 0.86.1 (#10755) 2023-10-18 13:00:51 -05:00
nu_plugin_example Bump version to 0.86.1 (#10755) 2023-10-18 13:00:51 -05:00
nu_plugin_formats Bump rust-ini from 0.19.0 to 0.20.0 (#10882) 2023-10-30 11:56:13 +00:00
nu_plugin_gstat Bump version to 0.86.1 (#10755) 2023-10-18 13:00:51 -05:00
nu_plugin_inc Bump version to 0.86.1 (#10755) 2023-10-18 13:00:51 -05:00
nu_plugin_python remove vectorize_over_list from python plugin (#9905) 2023-08-03 16:46:48 +02:00
nu_plugin_query Bump scraper from 0.17.1 to 0.18.1 (#10879) 2023-10-30 11:53:26 +00:00
nu-cli Convert more examples and tests to record! macro (#10840) 2023-10-28 14:52:31 +02:00
nu-cmd-base [nu-cmd-base] add missing LICENSE text (#10855) 2023-10-27 15:55:03 -05:00
nu-cmd-dataframe Convert more examples and tests to record! macro (#10840) 2023-10-28 14:52:31 +02:00
nu-cmd-extra Convert more examples and tests to record! macro (#10840) 2023-10-28 14:52:31 +02:00
nu-cmd-lang Fix describe -d for lazy records (#10836) 2023-10-25 08:04:37 -05:00
nu-color-config Bump version to 0.86.1 (#10755) 2023-10-18 13:00:51 -05:00
nu-command Add umkdir command (#10785) 2023-10-30 07:59:48 -05:00
nu-engine redirection: fix internal commands error with o+e> redirection (#10816) 2023-10-25 16:35:51 +02:00
nu-explore Finish removing profile command and related data (#10807) 2023-10-22 14:06:53 +03:00
nu-glob Allow filesystem commands to access files with glob metachars in name (#10694) 2023-10-18 13:31:15 -05:00
nu-json Bump version to 0.86.1 (#10755) 2023-10-18 13:00:51 -05:00
nu-parser redirect should have a target (#10835) 2023-10-25 11:19:35 +02:00
nu-path Bump version to 0.86.1 (#10755) 2023-10-18 13:00:51 -05:00
nu-plugin Bump version to 0.86.1 (#10755) 2023-10-18 13:00:51 -05:00
nu-pretty-hex Bump version to 0.86.1 (#10755) 2023-10-18 13:00:51 -05:00
nu-protocol Add Record::remove/retain/retain_mut (#10876) 2023-10-30 19:51:28 +01:00
nu-std group-by now returns a table instead of a record (#10848) 2023-10-28 14:15:14 -05:00
nu-system Bump version to 0.86.1 (#10755) 2023-10-18 13:00:51 -05:00
nu-table Bump version to 0.86.1 (#10755) 2023-10-18 13:00:51 -05:00
nu-term-grid Bump version to 0.86.1 (#10755) 2023-10-18 13:00:51 -05:00
nu-test-support Bump version to 0.86.1 (#10755) 2023-10-18 13:00:51 -05:00
nu-utils sync $env.config.filesize.metric (#10277) 2023-10-25 16:42:24 +02: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.