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) => t.to_tokens(tokens),
13 None => T::default().to_tokens(tokens),
14 }
15 }
16}
17