feat(meta): add _meta field to prompts, resources and paginated result (#558)

This commit is contained in:
Pavel Bezglasny 2025-12-04 02:38:47 +01:00 • committed by GitHub
commit 81411fc12d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -7,6 +7,7 @@ use syn::{Expr, ImplItem, ItemImpl, parse_quote};
#[darling(default)]
pub struct PromptHandlerAttribute {
pub router: Option<Expr>,
pub meta: Option<Expr>,
}
pub fn prompt_handler(attr: TokenStream, input: TokenStream) -> syn::Result<TokenStream> {
@ -40,6 +41,12 @@ pub fn prompt_handler(attr: TokenStream, input: TokenStream) -> syn::Result<Toke
}
};
let meta = if let Some(meta) = attribute.meta {
quote! { Some(#meta) }
} else {
quote! { None }
};
// Add list_prompts implementation
let list_prompts_impl: ImplItem = parse_quote! {
async fn list_prompts(
@ -50,6 +57,7 @@ pub fn prompt_handler(attr: TokenStream, input: TokenStream) -> syn::Result<Toke
let prompts = #router_expr.list_all();
Ok(ListPromptsResult {
prompts,
meta: #meta,
next_cursor: None,
})
}