Abstract get_crate_name() into macro utils.
This commit is contained in:
@@ -1,11 +1,11 @@
|
|||||||
use proc_macro::TokenStream;
|
use proc_macro::TokenStream;
|
||||||
use quote::quote;
|
use quote::quote;
|
||||||
|
|
||||||
|
use crate::utils::get_crate_name;
|
||||||
|
|
||||||
pub(super) fn flags_capture(args: TokenStream) -> TokenStream {
|
pub(super) fn flags_capture(args: TokenStream) -> TokenStream {
|
||||||
let cargo_crate_name = std::env::var("CARGO_CRATE_NAME");
|
let Some(crate_name) = get_crate_name() else {
|
||||||
let crate_name = match cargo_crate_name.as_ref() {
|
return args;
|
||||||
| Err(_) => return args,
|
|
||||||
| Ok(crate_name) => crate_name.trim_start_matches("tuwunel_"),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
let flag = std::env::args().collect::<Vec<_>>();
|
let flag = std::env::args().collect::<Vec<_>>();
|
||||||
|
|||||||
@@ -4,6 +4,18 @@ use syn::{Expr, ExprLit, Generics, Lit, Meta, MetaNameValue, parse_str};
|
|||||||
|
|
||||||
use crate::Result;
|
use crate::Result;
|
||||||
|
|
||||||
|
pub(crate) fn get_crate_name() -> Option<String> {
|
||||||
|
let cargo_crate_name = std::env::var("CARGO_CRATE_NAME");
|
||||||
|
match cargo_crate_name.as_ref() {
|
||||||
|
| Err(_) => None,
|
||||||
|
| Ok(crate_name) => Some(
|
||||||
|
crate_name
|
||||||
|
.trim_start_matches("tuwunel_")
|
||||||
|
.to_owned(),
|
||||||
|
),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub(crate) fn get_simple_settings(args: &[Meta]) -> HashMap<String, String> {
|
pub(crate) fn get_simple_settings(args: &[Meta]) -> HashMap<String, String> {
|
||||||
args.iter().fold(HashMap::new(), |mut map, arg| {
|
args.iter().fold(HashMap::new(), |mut map, arg| {
|
||||||
let Meta::NameValue(MetaNameValue { path, value, .. }) = arg else {
|
let Meta::NameValue(MetaNameValue { path, value, .. }) = arg else {
|
||||||
|
|||||||
Reference in New Issue
Block a user