David Tolnay | 1022712 | 2019-02-15 20:53:45 -0800 | [diff] [blame^] | 1 | use crate::types::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) { |
| 7 | let j = serde_json::to_string_pretty(&defs).unwrap(); |
| 8 | let check: Definitions = serde_json::from_str(&j).unwrap(); |
| 9 | assert_eq!(*defs, check); |
| 10 | |
Carl Lerche | 9a7d588 | 2019-02-15 12:27:04 -0800 | [diff] [blame] | 11 | let codegen_root = Path::new(env!("CARGO_MANIFEST_DIR")); |
David Tolnay | 07b2cca | 2019-02-15 18:58:27 -0800 | [diff] [blame] | 12 | let json_path = codegen_root.join("../syn.json"); |
| 13 | fs::write(json_path, j).unwrap(); |
Carl Lerche | 9a7d588 | 2019-02-15 12:27:04 -0800 | [diff] [blame] | 14 | } |