David Tolnay | 950cc12 | 2019-05-07 14:21:13 -0700 | [diff] [blame] | 1 | use syn_codegen::Definitions; |
Carl Lerche | 9a7d588 | 2019-02-15 12:27:04 -0800 | [diff] [blame] | 2 | |
David Tolnay | 1022712 | 2019-02-15 20:53:45 -0800 | [diff] [blame] | 3 | use std::fs; |
Carl Lerche | 9a7d588 | 2019-02-15 12:27:04 -0800 | [diff] [blame] | 4 | use std::path::Path; |
| 5 | |
David Tolnay | 1022712 | 2019-02-15 20:53:45 -0800 | [diff] [blame] | 6 | pub fn generate(defs: &Definitions) { |
David Tolnay | 12c027f | 2019-02-28 23:39:57 -0800 | [diff] [blame] | 7 | let mut j = serde_json::to_string_pretty(&defs).unwrap(); |
| 8 | j.push('\n'); |
| 9 | |
David Tolnay | 1022712 | 2019-02-15 20:53:45 -0800 | [diff] [blame] | 10 | let check: Definitions = serde_json::from_str(&j).unwrap(); |
| 11 | assert_eq!(*defs, check); |
| 12 | |
Carl Lerche | 9a7d588 | 2019-02-15 12:27:04 -0800 | [diff] [blame] | 13 | let codegen_root = Path::new(env!("CARGO_MANIFEST_DIR")); |
David Tolnay | 07b2cca | 2019-02-15 18:58:27 -0800 | [diff] [blame] | 14 | let json_path = codegen_root.join("../syn.json"); |
| 15 | fs::write(json_path, j).unwrap(); |
Carl Lerche | 9a7d588 | 2019-02-15 12:27:04 -0800 | [diff] [blame] | 16 | } |