xref: /linux/rust/syn/print.rs (revision 6dfafbd0299a60bfb5d5e277fdf100037c7ded07)
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