Skip to main content

syn/
print.rs

1// SPDX-License-Identifier: Apache-2.0 OR MIT
2
3use proc_macro2::TokenStream;
4use quote::ToTokens;
5
6pub(crate) struct TokensOrDefault<'a, T: 'a>(pub &'a Option<T>);
7
8impl<'a, T> ToTokens for TokensOrDefault<'a, T>
9where
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}