1 | use proc_macro2::TokenStream; |
---|---|
2 | use quote::ToTokens; |
3 | |
4 | pub(crate) 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 | { |
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 |