use proc_macro2::TokenStream;
use quote::quote;
pub(crate) fn get_reinhardt_openapi_crate() -> TokenStream {
use proc_macro_crate::{FoundCrate, crate_name};
match crate_name("reinhardt-openapi") {
Ok(FoundCrate::Itself) => return quote!(crate),
Ok(FoundCrate::Name(name)) => {
let ident = syn::Ident::new(&name, proc_macro2::Span::call_site());
return quote!(::#ident);
}
Err(_) => {}
}
match crate_name("reinhardt-rest") {
Ok(FoundCrate::Itself) => {
return quote!(crate::openapi);
}
Ok(FoundCrate::Name(name)) => {
let ident = syn::Ident::new(&name, proc_macro2::Span::call_site());
return quote!(::#ident::openapi);
}
Err(_) => {}
}
match crate_name("reinhardt-web") {
Ok(FoundCrate::Itself) => {
return quote!(crate::rest::openapi);
}
Ok(FoundCrate::Name(name)) => {
let ident = syn::Ident::new(&name, proc_macro2::Span::call_site());
return quote!(::#ident::rest::openapi);
}
Err(_) => {}
}
match crate_name("reinhardt") {
Ok(FoundCrate::Itself) => {
return quote!(crate::rest::openapi);
}
Ok(FoundCrate::Name(name)) => {
let ident = syn::Ident::new(&name, proc_macro2::Span::call_site());
return quote!(::#ident::rest::openapi);
}
Err(_) => {}
}
quote!(::reinhardt_rest::openapi)
}