From f8a7d983fa785d7428c278035640b81e140739bd Mon Sep 17 00:00:00 2001 From: Cameron Cross Date: Mon, 10 Nov 2025 23:43:26 +1100 Subject: [PATCH] Put doco on the original function name. --- examples/trivial.rs | 3 ++- inner/src/lib.rs | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/examples/trivial.rs b/examples/trivial.rs index 7ee1e05..23b35ed 100644 --- a/examples/trivial.rs +++ b/examples/trivial.rs @@ -1,7 +1,8 @@ use memoize::memoize; #[memoize] -fn hello(arg: String, arg2: usize) -> bool { +/// This is a basic function. +pub fn hello(arg: String, arg2: usize) -> bool { println!("{} => {}", arg, arg2); arg.len() % 2 == arg2 } diff --git a/inner/src/lib.rs b/inner/src/lib.rs index 4bbbde4..2513f96 100644 --- a/inner/src/lib.rs +++ b/inner/src/lib.rs @@ -357,6 +357,8 @@ pub fn memoize(attr: TokenStream, item: TokenStream) -> TokenStream { // Rename original function. let mut renamed_fn = func.clone(); renamed_fn.sig.ident = syn::Ident::new(&renamed_name, func.sig.span()); + let doco = renamed_fn.attrs.clone(); + renamed_fn.attrs.clear(); let memoized_id = &renamed_fn.sig.ident; // Construct memoizer function, which calls the original function. @@ -451,6 +453,7 @@ pub fn memoize(attr: TokenStream, item: TokenStream) -> TokenStream { #size_func #store + #(#doco)* #[allow(unused_variables, unused_mut)] #vis #sig { #memoizer