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