#![feature(proc_macro_tracked_env)] | |
extern crate proc_macro; | |
use proc_macro::TokenStream; | |
use proc_macro::tracked_env::var; | |
#[proc_macro] | |
pub fn generate_const(input: TokenStream) -> TokenStream { | |
let the_const = match var("THE_CONST") { | |
Ok(x) if x == "12" => { | |
"const THE_CONST: u32 = 12;" | |
} | |
_ => { | |
"const THE_CONST: u32 = 0;" | |
} | |
}; | |
let another = if var("ANOTHER").is_ok() { | |
"const ANOTHER: u32 = 1;" | |
} else { | |
"const ANOTHER: u32 = 2;" | |
}; | |
format!("{the_const}{another}").parse().unwrap() | |
} |