Implement the `ToTokens` trait for `&T` where `T` implements `ToTokens`. This allows users to use the `quote!()` macro with references directly, avoiding the need to clone values.
Tested-by: Alexandre Courbot <[email protected]> Signed-off-by: Jesung Yang <[email protected]> --- rust/macros/quote.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/rust/macros/quote.rs b/rust/macros/quote.rs index 92cacc4067c9..8a89f0b1e785 100644 --- a/rust/macros/quote.rs +++ b/rust/macros/quote.rs @@ -7,6 +7,12 @@ pub(crate) trait ToTokens { fn to_tokens(&self, tokens: &mut TokenStream); } +impl<T: ToTokens> ToTokens for &T { + fn to_tokens(&self, tokens: &mut TokenStream) { + (*self).to_tokens(tokens); + } +} + impl<T: ToTokens> ToTokens for Option<T> { fn to_tokens(&self, tokens: &mut TokenStream) { if let Some(v) = self { -- 2.39.5
