# root-ls
A command line tool to inspect the types of objects contained in a `.root` file similar to ROOT's `TFile::ShowStreamerInfo()` function. However, `root-ls` is also able to produce (proably buggy) Rust code as a starting point to write a custom parser for the content of a file. If you are in that sort of business, you should take a look at the [`root-io`](https://crates.io/crates/root-io) crate.
## Installation
1. Get Rust via [rustup](https://rustup.rs/)
2. Install `root-ls`
``` bash
cargo install root-ls
```
## Usage
- Dump the layout of the streamed objects as yaml
``` bash
root-ls ./simple.root to-yaml
```
- Create rust structs and parsers for the objects in this file; formatting the code with rustfmt
``` bash
root-ls ./simple.root to-rust --rustfmt
```
- Print a short summary of all the items in this file
``` bash
root-ls ./simple.root to-rust inspect
```
- Dump all the info there is on one particular item. Not pretty, but most precise (especially with optional `-v`)
``` bash
root-ls ./simple.root to-rust inspect --item-pos=0 -v
```