summaryrefslogtreecommitdiff
path: root/varihappy-macros/src/lib.rs
blob: 561962cf7141d0350c76be877b91fc0102d6073b (plain)
use proc_macro::{Ident, Span, TokenStream, TokenTree};

#[proc_macro]
pub fn concat_idents(input: TokenStream) -> TokenStream {
	let mut buffer = String::new();
	for token in input {
		if let TokenTree::Ident(identifier) = token {
			buffer.push_str(&identifier.to_string());
		}
	}

	let mut stream = TokenStream::new();
	stream.extend([Ident::new(&buffer, Span::call_site())]);
	stream
}