syn/
print.rs

1use proc_macro2::TokenStream;
2use quote::ToTokens;
3
4pub(crate) struct TokensOrDefault<'a, T: 'a>(pub &'a Option<T>);
5
6impl<'a, T> ToTokens for TokensOrDefault<'a, T>
7where
8    T: ToTokens + Default,
9{
10    fn to_tokens(&self, tokens: &mut TokenStream) {
11        match self.0 {
12            Some(t) => t.to_tokens(tokens),
13            None => T::default().to_tokens(tokens),
14        }
15    }
16}