use proc_macro2::TokenStream; use quote::ToTokens; pub struct TokensOrDefault<'a, T: 'a>(pub &'a Option); impl<'a, T> ToTokens for TokensOrDefault<'a, T> where T: ToTokens + Default, { fn to_tokens(&self, tokens: &mut TokenStream) { match self.0 { Some(t) => t.to_tokens(tokens), None => T::default().to_tokens(tokens), } } }