1use std::{collections::HashMap, path::PathBuf};
2
3pub mod rust;
4pub mod typescript;
5
6pub struct Job {
7 pub name: String,
8 pub protocol: tx3_lang::Protocol,
9 pub dest_path: PathBuf,
10 pub trp_endpoint: String,
11 pub trp_headers: HashMap<String, String>,
12 pub env_args: HashMap<String, String>,
13}
14
15pub fn build(path: &str) {
20 println!("cargo:rerun-if-changed=build.rs");
21 println!("cargo:rerun-if-changed={}", path);
22
23 let path = std::path::Path::new(path);
24
25 let protocol = tx3_lang::Protocol::from_file(path).load().unwrap();
26
27 let out_dir = std::env::var("OUT_DIR").unwrap();
28
29 let job = Job {
30 name: path.file_stem().unwrap().to_str().unwrap().to_string(),
31 protocol,
32 dest_path: out_dir.into(),
33 trp_endpoint: "http://localhost:3000".to_string(),
34 trp_headers: HashMap::new(),
35 env_args: HashMap::new(),
36 };
37
38 rust::generate(&job);
39}