syn-serde
Library to serialize and deserialize Syn syntax trees.
Usage
Add this to your Cargo.toml
:
[]
= "0.2"
The current syn-serde requires Rust 1.31 or later.
Examples
[]
= { = "0.2", = ["json"] }
= { = "1", = ["full"] }
use json;
let syn_file: File = parse_quote! ;
println!;
This prints the following JSON:
Rust source file -> JSON representation of the syntax tree
The rust2json
example parse a Rust source file into a syn_serde::File
and print out a JSON representation of the syntax tree.
JSON file -> Rust syntax tree
The json2rust
example parse a JSON file into a syn_serde::File
and
print out a Rust syntax tree.
Optional features
json
— Provides functions for JSON <-> Rust serializing and deserializing.
Relationship to Syn
syn-serde is a fork of Syn, and syn-serde provides a set of data structures similar but not identical to Syn. All data structures provided by syn-serde can be converted to the data structures of Syn and proc-macro2.
The data structures of syn-serde 0.2 is compatible with the data structures of Syn 1.0.
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.