crate::ix!();
pub fn mint_lifetime_param(user_lifetime: &Ident) -> (GenericParam, Ident) {
let lifetime_str = format!("'{}", user_lifetime);
let param: syn::GenericParam = syn::parse_str(&lifetime_str)
.expect("should parse as a LifetimeParam");
(param, user_lifetime.clone())
}
#[cfg(test)]
mod test_mint_lifetime_param {
use super::*;
#[test]
fn test_mint_lifetime_param() {
let lt_ident = Ident::new("x", proc_macro2::Span::call_site());
let (param, minted_id) = mint_lifetime_param(<_ident);
match ¶m {
GenericParam::Lifetime(lp) => {
assert_eq!(lp.lifetime.ident, lt_ident, "Should keep user ident 'x'");
}
_ => panic!("Expected a lifetime param"),
}
assert_eq!(minted_id.to_string(), "x");
}
}