nushell/crates/nu-cmd-extra
Stefan Holderbach b2734db015
Move more commands to opaque Record type (#11122)
# Description

Further work towards the goal that we can make `Record`'s field private
and experiment with different internal representations

## Details
- Use inplace record iter in `nu-command/math/utils`
  - Guarantee that existing allocation can be reused
- Use proper record iterators in `path join`
- Remove unnecesary hashmap in `path join`
  - Should minimally reduce the overhead
- Unzip records in `nu-command`
- Refactor `query web` plugin to use record APIs
- Use `Record::into_values` for `values` command
- Use `Record::columns()` in `join` instead.
  - Potential minor pessimisation
  - Not the hot value path
- Use sane `Record` iters in example `Debug` impl
- Avoid layout assumption in `nu-cmd-extra/roll/mod`
  - Potential minor pessimisation
- relegated to `extra`, changing the representation may otherwise break
this op.
- Use record api in `rotate`
- Minor risk that this surfaces some existing invalid behavior as panics
as we now validate column/value lengths
  - `extra` so things are unstable
- Remove unnecessary references in `rotate`
  - Bonus cleanup
# User-Facing Changes
None functional, minor potential differences in runtime. You win some,
you lose some.

# Tests + Formatting
Relying on existing tests
2023-11-22 23:48:48 +01:00
..
assets REFACTOR: move the 0% commands to nu-cmd-extra (#9404) 2023-07-06 08:31:31 -07:00
src Move more commands to opaque Record type (#11122) 2023-11-22 23:48:48 +01:00
tests Clean up tests containing unnecessary cwd: tokens (#9692) 2023-07-17 18:43:51 +02:00
Cargo.toml Bump version to 0.87.2 (#11114) 2023-11-20 20:31:10 +01:00
LICENSE nu-cmd-extra crate infrastructure in place with the Bits command as the model for adding other commands (#9327) 2023-06-01 10:46:16 -07:00
README.md add in a Readme for the crate nu-cmd-extra (#9745) 2023-07-19 21:35:58 -07:00

nu-cmd-extra

the extra commands are not part of the Nushell binary

The commands in this crate are the extra commands of Nushell. They do not get built for the release and it is the responsibility of the developer to build these commands if they want to use them.

These commands are not going to part of the 1.0 Api; meaning that there is no guarantee longer term that these commands will be around into the future. Of course since they are part of the source tree one could always incorporate them into their own custom release.

How to build the commands in this crate

Step 1 is to read the installation notes for Nushell which is located in our Nushell book.

Once Rust is installed you can then build Nushell with the following command.

cargo build --features=extra

Your Nushell binary which just got built is called nu and will be located here.

nushell/target/debug/nu