nushell/crates/nu-protocol/src
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
..
ast Allow operator in constants (#10212) 2023-09-05 16:35:58 +02:00
engine Support pattern matching null literals (#10829) 2023-10-25 06:30:45 +08:00
value Add Record::remove/retain/retain_mut (#10876) 2023-10-30 19:51:28 +01:00
alias.rs Refactor scope commands (#10023) 2023-08-17 11:58:38 +03:00
cli_error.rs Screen reader-friendly errors (#10122) 2023-08-27 06:54:15 -05:00
config.rs Remove cd w/ abbreviations (#10588) 2023-10-03 10:51:46 +13:00
did_you_mean.rs Suggest existing variables on not found (#8902) 2023-05-02 18:17:14 +03:00
eval_const.rs Remove python-like string multiplication (#10293) 2023-09-13 19:52:04 +12:00
example.rs remove unused imports: Deserialize, Serialize compiler warning for nu-protocol/src/example.rs (#8514) 2023-03-18 11:45:12 -07:00
exportable.rs Module: support defining const and use const variables inside of function (#9773) 2023-08-01 07:09:52 +08:00
id.rs Add virtual path abstraction layer (#9245) 2023-05-23 23:48:50 +03:00
lev_distance.rs Suggest existing variables on not found (#8902) 2023-05-02 18:17:14 +03:00
lib.rs remove the $nothing variable (#10567) 2023-10-19 18:41:38 +02:00
module.rs Create Record type (#10103) 2023-08-25 07:50:29 +12:00
parse_error.rs Add --env and --wrapped flags to def (#10566) 2023-10-02 21:13:31 +03:00
pipeline_data.rs Finish removing profile command and related data (#10807) 2023-10-22 14:06:53 +03:00
plugin_signature.rs Rename main to script name when running scripts (#9948) 2023-08-12 05:58:49 +12:00
shell_error.rs Allow filesystem commands to access files with glob metachars in name (#10694) 2023-10-18 13:31:15 -05:00
signature.rs Rename misused "deprecation" to removal (#10000) 2023-08-15 07:17:31 +12:00
span.rs Use variable names directly in the format strings (#7906) 2023-01-29 19:37:54 -06:00
syntax_shape.rs Rename SyntaxShape::Custom to CompleterWrapper (#10548) 2023-09-29 19:22:58 +02:00
ty.rs change Type::Float => SyntaxShape::Number to SyntaxShape::Float (#10689) 2023-10-11 12:27:09 -05:00
util.rs move BufferedReader out of nu-command (#7697) 2023-01-06 15:22:17 -08:00
variable.rs Fix broken constants in scopes (#9679) 2023-07-14 00:02:05 +03:00