hydro_lang/
staging_util.rs
1use std::marker::PhantomData;
2
3use proc_macro2::{Span, TokenStream};
4use quote::quote;
5
6pub type Invariant<'a, D = ()> = PhantomData<(fn(&'a ()) -> &'a (), D)>;
7
8pub fn get_this_crate() -> TokenStream {
9 let hydro_lang_crate = proc_macro_crate::crate_name("hydro_lang")
10 .expect("hydro_lang should be present in `Cargo.toml`");
11 match hydro_lang_crate {
12 proc_macro_crate::FoundCrate::Itself => quote! { hydro_lang },
13 proc_macro_crate::FoundCrate::Name(name) => {
14 let ident = syn::Ident::new(&name, Span::call_site());
15 quote! { #ident }
16 }
17 }
18}