nushell/crates/nuon
Stefan Holderbach 84e1ac27e5
Setup global cargo lint configuration (#13691)
# Description
`cargo` somewhat recently gained the capability to store `lints`
settings for the crate and workspace, that can override the defaults
from `rustc` and `clippy` lints. This means we can enforce some lints
without having to actively pass them to clippy via `cargo clippy -- -W
...`. So users just forking the repo have an easier time to follow
similar requirements like our CI.

## Limitation

An exception that remains is that those lints apply to both the primary
code base and the tests. Thus we can't include e.g. `unwrap_used`
without generating noise in the tests. Here the setup in the CI remains
the most helpful.

## Included lints

- Add `clippy::unchecked_duration_subtraction` (added by #12549)
# User-Facing Changes
Running `cargo clippy --workspace` should be closer to the CI. This has
benefits for editor configured runs of clippy and saves you from having
to use `toolkit` to be close to CI in more cases.
2024-08-28 23:37:17 +02:00
..
src Clippy fixes from stable and nightly (#13455) 2024-07-31 20:37:40 +02:00
Cargo.toml Setup global cargo lint configuration (#13691) 2024-08-28 23:37:17 +02:00
LICENSE create nuon crate from from nuon and to nuon (#12553) 2024-04-19 13:54:16 +02:00
README.md Add top-level crate documentation/READMEs (#12907) 2024-07-14 10:10:41 +02:00

Support for the NUON format.

The NUON format is a superset of JSON designed to fit the feel of Nushell. Some of its extra features are

  • trailing commas are allowed
  • commas are optional in lists
  • quotes are not required around keys or any bare string that do not contain spaces or special characters
  • comments are allowed, though not preserved when using [from_nuon]

Example

below is some data in the JSON format

{
    "name": "Some One",
    "birth": "1970-01-01",
    "stats": [
      2544729499973429198,
      687051042647753531,
      6702443901704799912
    ]
}

and an equivalent piece of data written in NUON

{
    name: "Some One",       # the name of the person
    birth: "1970-01-01",    # their date of birth
    stats: [                # some dummy "stats" about them
      2544729499973429198,
      687051042647753531,
      6702443901704799912, # note the trailing comma here...
    ], # and here
} # wait, are these comments in a JSON-like document?!?!