# A library for converting `ron` to a table. It uses [`tabled`](https://github.com/zhiburt/tabled) as a rendering backend. ## Get started The library supports 2 modes for a table embedded and collapsed. It also provides with a list of options to modify the table, such as style, alignment, padding and more. You can change an orientation of a `map` and `sequence` via `Orientation`. You'll find to examples for the modes bellow. ## Usage Add the library to a dependency list. ```toml [dependencies] ron_to_table = "0.1.0" ```
Example (embedded) | Result |
---|---|
```rust let data = r#"Scene( materials: { "metal": (reflectivity: 1.0), "plastic": (reflectivity: 0.5), }, entities: [ (name: "hero", material: "metal"), (name: "monster", material: "plastic"), ], )"#; let scene = ron::from_str(data).unwrap(); let table = ron_to_table::to_string(&scene); println!("{}", table); ``` | ```text +-------------+--------------------------------------------+ | entities | +----------------------------+ | | | | +------------+---------+ | | | | | | material | metal | | | | | | +------------+---------+ | | | | | | name | hero | | | | | | +------------+---------+ | | | | +----------------------------+ | | | | +------------+-----------+ | | | | | | material | plastic | | | | | | +------------+-----------+ | | | | | | name | monster | | | | | | +------------+-----------+ | | | | +----------------------------+ | +-------------+--------------------------------------------+ | materials | +-----------+----------------------------+ | | | | metal | +----------------+-----+ | | | | | | | reflectivity | 1 | | | | | | | +----------------+-----+ | | | | +-----------+----------------------------+ | | | | plastic | +----------------+-------+ | | | | | | | reflectivity | 0.5 | | | | | | | +----------------+-------+ | | | | +-----------+----------------------------+ | +-------------+--------------------------------------------+ ``` |
Example (collapsed) | Result |
---|---|
```rust use ron_to_table::RonTable; use tabled::settings::Style; let data = r#"Scene( materials: { "metal": (reflectivity: 1.0), "plastic": (reflectivity: 0.5), }, entities: [ (name: "hero", material: "metal"), (name: "monster", material: "plastic"), ], )"#; let scene = ron::from_str(data).unwrap(); let table = RonTable::default() .collapse() .with(Style::extended()) .build(&scene); println!("{table}"); ``` | ```text ╔═══════════╦══════════╦═══════════════════╗ ║ entities ║ material ║ metal ║ ║ ╠══════════╬═══════════════════╣ ║ ║ name ║ hero ║ ║ ╠══════════╬═══════════════════╣ ║ ║ material ║ plastic ║ ║ ╠══════════╬═══════════════════╣ ║ ║ name ║ monster ║ ╠═══════════╬═════════╦╩═════════════╦═════╣ ║ materials ║ metal ║ reflectivity ║ 1 ║ ║ ╠═════════╬══════════════╬═════╣ ║ ║ plastic ║ reflectivity ║ 0.5 ║ ╚═══════════╩═════════╩══════════════╩═════╝ ``` |