miwa-macros 0.1.0

Miwa macros
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
use proc_macro2::{Ident, Span, TokenStream, TokenTree};
use proc_macro_crate::{crate_name, FoundCrate};
use quote::quote;

pub fn get_crate_name(internal: bool) -> TokenStream {
    if internal {
        quote! { crate }
    } else {
        let name = match crate_name("miwa") {
            Ok(FoundCrate::Name(name)) => name,
            Ok(FoundCrate::Itself) | Err(_) => "miwa".to_string(),
        };
        TokenTree::from(Ident::new(&name, Span::call_site())).into()
    }
}