aboutsummaryrefslogtreecommitdiff
path: root/macros/src/lib.rs
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/src/lib.rs
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()
}