nu_plugin_ron 0.1.1

A Nushell plugin for parsing RON text.
Documentation
# nu_plugin_ron

This is a [nushell] [plugin] to parse [RON] text into `nu` structured types.

[nushell]: https://www.nushell.sh/
[plugin]: https://www.nushell.sh/contributor-book/plugins.html
[RON]: https://github.com/ron-rs/ron

# Installing

[add the plugin]: https://www.nushell.sh/book/plugins.html#adding-a-plugin
[`register`]: https://www.nushell.sh/book/commands/register.html

To [add the plugin] permanently, just install it and call [`register`] on it:

## Using Cargo

```bash
cargo install nu_plugin_ron
register ~/.cargo/bin/nu_plugin_ron
```

## Usage

Consider the following RON example:
```rust
Scene( // class name is optional
    materials: { // this is a map
        "metal": (
            reflectivity: 1.0,
        ),
        "plastic": (
            reflectivity: 0.5,
        ),
    },
    entities: [ // this is an array
        (
            name: "hero",
            material: "metal",
        ),
        (
            name: "monster",
            material: "plastic",
        ),
    ],
)
```

```bash
$ open example.ron
╭───────────┬───────────────────────────────────────╮
│           │ ╭───┬──────────┬─────────╮            │
│ entities  │ │ # │ material │  name   │            │
│           │ ├───┼──────────┼─────────┤            │
│           │ │ 0 │ metal    │ hero    │            │
│           │ │ 1 │ plastic  │ monster │            │
│           │ ╰───┴──────────┴─────────╯            │
│           │ ╭─────────┬─────────────────────────╮ │
│ materials │ │         │ ╭──────────────┬──────╮ │ │
│           │ │ metal   │ │ reflectivity │ 1.00 │ │ │
│           │ │         │ ╰──────────────┴──────╯ │ │
│           │ │         │ ╭──────────────┬──────╮ │ │
│           │ │ plastic │ │ reflectivity │ 0.50 │ │ │
│           │ │         │ ╰──────────────┴──────╯ │ │
│           │ ╰─────────┴─────────────────────────╯ │
╰───────────┴───────────────────────────────────────╯

$ open example.ron | update materials.metal.reflectivity 2.00 | save -f new_example.ron
$ open new_example.ron
╭───────────┬───────────────────────────────────────╮
│           │ ╭───┬──────────┬─────────╮            │
│ entities  │ │ # │ material │  name   │            │
│           │ ├───┼──────────┼─────────┤            │
│           │ │ 0 │ metal    │ hero    │            │
│           │ │ 1 │ plastic  │ monster │            │
│           │ ╰───┴──────────┴─────────╯            │
│           │ ╭─────────┬─────────────────────────╮ │
│ materials │ │         │ ╭──────────────┬──────╮ │ │
│           │ │ metal   │ │ reflectivity │ 2.00 │ │ │
│           │ │         │ ╰──────────────┴──────╯ │ │
│           │ │         │ ╭──────────────┬──────╮ │ │
│           │ │ plastic │ │ reflectivity │ 0.50 │ │ │
│           │ │         │ ╰──────────────┴──────╯ │ │
│           │ ╰─────────┴─────────────────────────╯ │
╰───────────┴───────────────────────────────────────╯
```