async_graphql_derive/
description.rs1use proc_macro::TokenStream;
2use quote::quote;
3
4use crate::{
5 args,
6 utils::{GeneratorResult, get_crate_path, get_rustdoc},
7};
8
9pub fn generate(desc_args: &args::Description) -> GeneratorResult<TokenStream> {
10 let crate_name = get_crate_path(&desc_args.crate_path, desc_args.internal);
11 let ident = &desc_args.ident;
12 let (impl_generics, ty_generics, where_clause) = desc_args.generics.split_for_impl();
13 let doc = get_rustdoc(&desc_args.attrs)?.unwrap_or_default();
14 let expanded = quote! {
15 impl #impl_generics #crate_name::Description for #ident #ty_generics #where_clause {
16 fn description() -> &'static str {
17 #doc
18 }
19 }
20 };
21 Ok(expanded.into())
22}