use syn::DeriveInput;
#[proc_macro_derive(Edges, attributes(moongraph))]
pub fn derive_edges(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
let input: DeriveInput = syn::parse_macro_input!(input);
let maybe_path = match moongraph_macros_syntax::find_path("moongraph", &input) {
Err(e) => return e.into_compile_error().into(),
Ok(maybe_path) => maybe_path,
};
let path = maybe_path.unwrap_or_else(|| {
let path: syn::Path = syn::parse_str("moongraph").unwrap();
path
});
moongraph_macros_syntax::derive_edges(input, path).into()
}