1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
// cmdargs - Command line argument parser for Rust
//
// Copyright waived 2022, Everaldo Canuto <everaldo.canuto@gmail.com>
//
// The contents of this file is free and unencumbered software released into the
// public domain. For more information, please refer to <http://unlicense.org/>
use proc_macro::TokenStream;
#[proc_macro]
pub fn parser_from_str(_input: TokenStream) -> TokenStream {
let program = r#"env!("CARGO_BIN_NAME").to_string()"#;
let version = r#"env!("CARGO_PKG_VERSION").to_string()"#;
let output = format!(
r#"{{
let mut parser = cmdargs::Parser::new();
parser.program = {};
parser.version = {};
parser
}}"#,
program, version,
);
output.parse().unwrap()
// eprintln!("{}", result);
// TokenStream::from_str("")
// return TokenStream::new();
}