标准库提供的宏
env! 硬编码方式读取包信息
@see https://github.com/mookid/broken_utils/blob/master/rust/ff/src/main.rs
const BIN_NAME: &str = env!("CARGO_PKG_NAME");
const VERSION: &str = env!("CARGO_PKG_VERSION");
json!
macro_rules! json {
($($key: ident : $value: expr), *) => {{
let mut map = std::collections::HashMap::new();
$(
map.insert(stringify!($key), $value.clone());
)*
map
}};
}
fn main() {
let user = json! {
name: "张三",
age: "18岁"
};
println!("{:?}", user);
let obj = json! {
id: 0.3_f64,
value: 0.1+0.2
};
println!("{:?}", obj);
}
json! 允许逗号可有可无
macro_rules! json {
($($key: ident : $value: expr$(,)*)*) => {{
let mut map = std::collections::HashMap::new();
$(
map.insert(stringify!($key), $value.clone());
)*
map
}};
}
fn main() {
let user = json! {
name: "张三"
age: "18岁"
};
println!("{:?}", user);
let obj = json! {
id: 0.3_f64,,,,
value: 0.1+0.2
};
println!("{:?}", obj);
}
json! 允许最后一行逗号可有可无
macro_rules! json {
($($key: ident : $value: expr),* $(,)*) => {{
let mut map = std::collections::HashMap::new();
$(
map.insert(stringify!($key), $value.clone());
)*
map
}};
}
fn main() {
let user = json! {
name: "张三",
age: "18岁",
};
println!("{:?}", user);
let obj = json! {
id: 0.3_f64,
value: 0.1+0.2,,,
};
println!("{:?}", obj);
}