aboutsummaryrefslogtreecommitdiff
path: root/macros
diff options
context:
space:
mode:
authorGravatar Jorge Aparicio <jorge@japaric.io> 2019-05-08 14:08:09 +0200
committerGravatar Jorge Aparicio <jorge@japaric.io> 2019-05-08 14:08:09 +0200
commitd4eb4d2c47c905b3634410a7fdfea84fe1e8cee0 (patch)
treea14a6c3a0b88546c66ed83ddeba5ada9def67d0d /macros
parentbc024f197929be1ce7dac9e6cbf6672c3980437e (diff)
downloadrtic-d4eb4d2c47c905b3634410a7fdfea84fe1e8cee0.tar.gz
rtic-d4eb4d2c47c905b3634410a7fdfea84fe1e8cee0.tar.zst
rtic-d4eb4d2c47c905b3634410a7fdfea84fe1e8cee0.zip
write generated code to disk for easier inspection
now that the generated code is actually readable let's make it easier to access this commit also documents how to inspect the generated code via `rtfm-expansion.rs` and `cargo-expand`
Diffstat (limited to '')
-rw-r--r--macros/src/lib.rs11
1 files changed, 10 insertions, 1 deletions
diff --git a/macros/src/lib.rs b/macros/src/lib.rs
index 441d6b5e..736289cb 100644
--- a/macros/src/lib.rs
+++ b/macros/src/lib.rs
@@ -4,6 +4,8 @@
extern crate proc_macro;
use proc_macro::TokenStream;
+use std::{fs, path::Path};
+
use syn::parse_macro_input;
mod analyze;
@@ -304,5 +306,12 @@ pub fn app(args: TokenStream, input: TokenStream) -> TokenStream {
let analysis = analyze::app(&app);
// Code generation
- codegen::app(&input.ident, &app, &analysis).into()
+ let ts = codegen::app(&input.ident, &app, &analysis);
+
+ // Try to write the expanded code to disk
+ if Path::new("target").exists() {
+ fs::write("target/rtfm-expansion.rs", ts.to_string()).ok();
+ }
+
+ ts.into()
}