mirror of
https://github.com/nushell/nushell.git
synced 2024-11-28 19:33:47 +01:00
ba6f38510c
# Description On 64-bit platforms the current size of `Value` is 56 bytes. The limiting variants were `Closure` and `Range`. Boxing the two reduces the size of Value to 48 bytes. This is the minimal size possible with our current 16-byte `Span` and any 24-byte `Vec` container which we use in several variants. (Note the extra full 8-bytes necessary for the discriminant or other smaller values due to the 8-byte alignment of `usize`) This is leads to a size reduction of ~15% for `Value` and should overall be beneficial as both `Range` and `Closure` are rarely used compared to the primitive types or even our general container types. # User-Facing Changes Less memory used, potential runtime benefits. (Too late in the evening to run the benchmarks myself right now) |
||
---|---|---|
.. | ||
src | ||
Cargo.toml | ||
LICENSE | ||
README.md |
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
- 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?!?!