ruskit/framework/
typescript.rs

1use std::fs;
2use ts_rs::ExportError;
3
4pub struct TsExporter {
5    pub export_fn: fn() -> Result<String, ExportError>,
6}
7
8inventory::collect!(TsExporter);
9
10pub fn export_all_types(output_file: &str) -> Result<(), ExportError> {
11    let types: Vec<String> = inventory::iter::<TsExporter>
12        .into_iter()
13        .filter_map(|exporter| (exporter.export_fn)().ok())
14        .collect();
15
16    fs::write(output_file, types.join("\n"))?;
17    Ok(())
18}