pdl 0.1.1

Parse PDL file for the Chrome DevTools Protocol
Documentation
# pdl [![Travis Build Status](https://travis-ci.org/flier/rust-pdl.svg?branch=master)](https://travis-ci.org/flier/rust-pdl) [![Appveyor Build status](https://ci.appveyor.com/api/projects/status/h2tvdm5uiqtc4mh2?svg=true)](https://ci.appveyor.com/project/flier/rust-pdl) [![crate](https://img.shields.io/crates/v/pdl.svg)](https://crates.io/crates/pdl) [![docs](https://docs.rs/pdl/badge.svg)](https://docs.rs/crate/pdl/) [![dependency status](https://deps.rs/repo/github/flier/rust-pdl/status.svg)](https://deps.rs/repo/github/flier/rust-pdl)

Parse PDL file for [the Chrome DevTools Protocol](https://github.com/ChromeDevTools/devtools-protocol).

**NOTE:** `PDL` (pronounced as `ˈpo͞odl`) is a home-grown format to describe the  DevTools protocol. PDL support, such as Sublime syntax highlighting and the json converter, is available at https://github.com/pavelfeldman/pdl.

## Usage

To use `pdl` in your project, add the following to your Cargo.toml:

```toml
[dependencies]
pdl = "0.1"
```

## Example

Use `pdl::parse` to parse a PDL file as strongly typed data structures.

```rust
let mut f = File::open("browser_protoco.pdl")?;
let mut s = String::new();
f.read_to_string(&mut s)?;

let (rest, proto) = pdl::parse(&s)?;

println!("PDL: {}", proto);
println!("JSON: {}", proto.to_json_pretty());
```

For more detail, please check the `parser` example.

```sh
$ cargo run --example parser -- browser_protocol.pdl --json --output browser_protocol.json
```

## Resources

- [Chrome DevTools Protocol](https://chromedevtools.github.io/devtools-protocol/) - Chrome DevTools Protocol Domain documentation
- [Awesome chrome-devtools](https://github.com/ChromeDevTools/awesome-chrome-devtools) - Awesome tooling and resources in the Chrome DevTools ecosystem
- [devtools-protocol repo](https://github.com/ChromeDevTools/devtools-protocol) - File issues at this repo if you have concerns or problems with the DevTools Protocol (aka Chrome Remote Debugging Protocol).