Skip to content

Commit 2abbdc7

Browse files
committed
Add generated code logging
1 parent ca5887b commit 2abbdc7

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

relm-attributes/Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ repository = "https://github.com/antoyo/relm"
88
version = "0.9.0"
99

1010
[dependencies]
11+
env_logger = "^0.4.2"
12+
log = "^0.3.7"
1113
quote = "^0.3.15"
1214
syn = "^0.11.9"
1315

relm-attributes/src/lib.rs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,23 +21,41 @@
2121

2222
#![feature(proc_macro)]
2323

24+
extern crate env_logger;
25+
#[macro_use]
26+
extern crate log;
2427
extern crate proc_macro;
2528
#[macro_use]
2629
extern crate quote;
2730
extern crate relm_gen_widget;
2831
extern crate syn;
2932

33+
use std::env;
34+
35+
use env_logger::LogBuilder;
36+
use log::LogRecord;
3037
use proc_macro::TokenStream;
3138
use relm_gen_widget::gen_widget;
3239
use syn::parse_item;
3340

3441
#[proc_macro_attribute]
3542
pub fn widget(_attributes: TokenStream, input: TokenStream) -> TokenStream {
43+
let format = |record: &LogRecord| {
44+
record.args().to_string()
45+
};
46+
let mut builder = LogBuilder::new();
47+
builder.format(format);
48+
if let Ok(rust_log) = env::var("RUST_LOG") {
49+
builder.parse(&rust_log);
50+
}
51+
builder.init().ok();
52+
3653
let source = input.to_string();
3754
let ast = parse_item(&source).unwrap();
3855
let tokens = quote! {
3956
#ast
4057
};
4158
let expanded = gen_widget(tokens);
59+
error!("{}", expanded.parse::<String>().unwrap());
4260
expanded.parse().unwrap()
4361
}

0 commit comments

Comments
 (0)