nushell/crates
Loïc Riegel 58a8f30a25
small refactoring around units and add tests (#15746)
Closes #14469

# Description
- ~~Implement the ``--unit`` conversion in "into int" command~~
- New ``ShellError::InvalidUnit`` unit if users enter wrong units
- Made ``ShellError::CantConvertToDuration`` more generic: became
``CantConvertToUnit``
- Tried to improve the way we parse units and get the supported units.
It's not complete, though, I will continue this refactoring in another
PR. But I already did some small refactorings in the "format duration"
and "format filesize" commands
- Add tests for "format filesize" and "format duration"

# User-Facing Changes

```nu
~> 1MB | format filesize sec
Error: nu:🐚:invalid_unit

  × Invalid unit
   ╭─[entry #7:1:23]
 1 │ 1MB | format filesize sec
   ·                       ─┬─
   ·                        ╰── encountered here
   ╰────
  help: Supported units are: B, kB, MB, GB, TB, PB, EB, KiB, MiB, GiB, TiB, PiB, EiB

```
2025-05-16 17:41:26 -05:00
..
nu_plugin_custom_values Rust 1.85, edition=2024 (#15741) 2025-05-13 16:49:30 +02:00
nu_plugin_example Rust 1.85, edition=2024 (#15741) 2025-05-13 16:49:30 +02:00
nu_plugin_formats Rust 1.85, edition=2024 (#15741) 2025-05-13 16:49:30 +02:00
nu_plugin_gstat Rust 1.85, edition=2024 (#15741) 2025-05-13 16:49:30 +02:00
nu_plugin_inc Rust 1.85, edition=2024 (#15741) 2025-05-13 16:49:30 +02:00
nu_plugin_javascript create nu_plugin_node_example.js (#15482) 2025-04-11 21:18:46 +02:00
nu_plugin_nu_example feat: make to nuon raw option remove all white space (#15609) 2025-05-09 09:38:24 +08:00
nu_plugin_polars Rust 1.85, edition=2024 (#15741) 2025-05-13 16:49:30 +02:00
nu_plugin_python Bump to 0.104.1 dev version (#15669) 2025-04-29 23:33:10 -04:00
nu_plugin_query Rust 1.85, edition=2024 (#15741) 2025-05-13 16:49:30 +02:00
nu_plugin_stress_internals Rust 1.85, edition=2024 (#15741) 2025-05-13 16:49:30 +02:00
nu-cli Use Default for making Suggestions in attribute_completions (#15764) 2025-05-16 14:21:40 +08:00
nu-cmd-base Rust 1.85, edition=2024 (#15741) 2025-05-13 16:49:30 +02:00
nu-cmd-extra Rust 1.85, edition=2024 (#15741) 2025-05-13 16:49:30 +02:00
nu-cmd-lang Rust 1.85, edition=2024 (#15741) 2025-05-13 16:49:30 +02:00
nu-cmd-plugin Rust 1.85, edition=2024 (#15741) 2025-05-13 16:49:30 +02:00
nu-color-config Rust 1.85, edition=2024 (#15741) 2025-05-13 16:49:30 +02:00
nu-command small refactoring around units and add tests (#15746) 2025-05-16 17:41:26 -05:00
nu-derive-value Rust 1.85, edition=2024 (#15741) 2025-05-13 16:49:30 +02:00
nu-engine Rust 1.85, edition=2024 (#15741) 2025-05-13 16:49:30 +02:00
nu-explore Rust 1.85, edition=2024 (#15741) 2025-05-13 16:49:30 +02:00
nu-glob Rust 1.85, edition=2024 (#15741) 2025-05-13 16:49:30 +02:00
nu-json Rust 1.85, edition=2024 (#15741) 2025-05-13 16:49:30 +02:00
nu-lsp Rust 1.85, edition=2024 (#15741) 2025-05-13 16:49:30 +02:00
nu-parser fix parsing of bare word string interpolations that start with a sub expression (#15735) 2025-05-13 22:25:07 +03:00
nu-path Rust 1.85, edition=2024 (#15741) 2025-05-13 16:49:30 +02:00
nu-plugin Rust 1.85, edition=2024 (#15741) 2025-05-13 16:49:30 +02:00
nu-plugin-core Rust 1.85, edition=2024 (#15741) 2025-05-13 16:49:30 +02:00
nu-plugin-engine Rust 1.85, edition=2024 (#15741) 2025-05-13 16:49:30 +02:00
nu-plugin-protocol Rust 1.85, edition=2024 (#15741) 2025-05-13 16:49:30 +02:00
nu-plugin-test-support Rust 1.85, edition=2024 (#15741) 2025-05-13 16:49:30 +02:00
nu-pretty-hex Rust 1.85, edition=2024 (#15741) 2025-05-13 16:49:30 +02:00
nu-protocol small refactoring around units and add tests (#15746) 2025-05-16 17:41:26 -05:00
nu-std Rust 1.85, edition=2024 (#15741) 2025-05-13 16:49:30 +02:00
nu-system Rust 1.85, edition=2024 (#15741) 2025-05-13 16:49:30 +02:00
nu-table fix: empty tables now respect $env.config.use_ansi_coloring (closes #14896) (#15751) 2025-05-14 06:40:15 -05:00
nu-term-grid Rust 1.85, edition=2024 (#15741) 2025-05-13 16:49:30 +02:00
nu-test-support Rust 1.85, edition=2024 (#15741) 2025-05-13 16:49:30 +02:00
nu-utils Rust 1.85, edition=2024 (#15741) 2025-05-13 16:49:30 +02:00
nuon Rust 1.85, edition=2024 (#15741) 2025-05-13 16:49:30 +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.