1 use proc_macro2::TokenStream; 2 use quote::ToTokens; 3 4 pub struct TokensOrDefault<'a, T: 'a>(pub &'a Option<T>); 5 6 impl<'a, T> ToTokens for TokensOrDefault<'a, T> 7 where 8 T: ToTokens + Default, 9 { to_tokens(&self, tokens: &mut TokenStream)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 } 17