use proc_macro2::TokenStream; | |
use quote::ToTokens; | |
pub 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), | |
} | |
} | |
} |