use proc_macro2::{Span, TokenStream};
use proc_macro_crate::{crate_name, FoundCrate};
use quote::quote;
use syn::Ident;
fn named(name: &str) -> TokenStream {
let ident = Ident::new(name, Span::call_site());
quote! { ::#ident }
}
pub(crate) fn gauge_root() -> TokenStream {
match crate_name("bevy_diesel") {
Ok(FoundCrate::Itself) => return quote! { ::bevy_diesel::gauge },
Ok(FoundCrate::Name(name)) => {
let base = named(&name);
return quote! { #base::gauge };
}
Err(_) => {}
}
match crate_name("bevy_gauge") {
Ok(FoundCrate::Itself) => quote! { ::bevy_gauge },
Ok(FoundCrate::Name(name)) => named(&name),
Err(_) => quote! { ::bevy_gauge },
}
}