xref: /linux/rust/syn/print.rs (revision 69942c0a8965f311ed7ddf842f160c9cfdcda73a)
1 // SPDX-License-Identifier: Apache-2.0 OR MIT
2 
3 use proc_macro2::TokenStream;
4 use quote::ToTokens;
5 
6 pub(crate) struct TokensOrDefault<'a, T: 'a>(pub &'a Option<T>);
7 
8 impl<'a, T> ToTokens for TokensOrDefault<'a, T>
9 where
10     T: ToTokens + Default,
11 {
12     fn to_tokens(&self, tokens: &mut TokenStream) {
13         match self.0 {
14             Some(t) => t.to_tokens(tokens),
15             None => T::default().to_tokens(tokens),
16         }
17     }
18 }
19