| use proc_macro2::TokenStream; | |
| use quote::ToTokens; | |
| pub(crate) struct TokensOrDefault<'a, T: 'a>(pub &'a Option<T>); | |
| 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), | |
| } | |
| } | |
| } |