- Include crate metadata in program
const VERSION: Option<&'static str> = option_env!("CARGO_PKG_VERSION");
// ...
println!("MyProgram v{}", VERSION.unwrap_or("unknown"));
- Split Cargo.toml Authors into name,email pair (e.g. for use in App argument parser)
pub fn split_author_email(author: &str) -> Option<(String, String)> {
let re = Regex::new(r"(.*) <(.*)>").unwrap();
let parts = re.captures(author).unwrap();
if parts.len() == 3 {
return Some((
String::from(parts.get(1).unwrap().as_str()),
String::from(parts.get(2).unwrap().as_str()),
));
}
None
}