• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 use proc_macro2::TokenStream;
2 use quote::quote;
3 
4 pub enum Operand {
5     Borrowed(TokenStream),
6     Owned(TokenStream),
7 }
8 
9 pub use self::Operand::*;
10 
11 impl Operand {
tokens(&self) -> &TokenStream12     pub fn tokens(&self) -> &TokenStream {
13         match self {
14             Borrowed(n) | Owned(n) => n,
15         }
16     }
17 
ref_tokens(&self) -> TokenStream18     pub fn ref_tokens(&self) -> TokenStream {
19         match self {
20             Borrowed(n) => n.clone(),
21             Owned(n) => quote!(&#n),
22         }
23     }
24 
ref_mut_tokens(&self) -> TokenStream25     pub fn ref_mut_tokens(&self) -> TokenStream {
26         match self {
27             Borrowed(n) => n.clone(),
28             Owned(n) => quote!(&mut #n),
29         }
30     }
31 
owned_tokens(&self) -> TokenStream32     pub fn owned_tokens(&self) -> TokenStream {
33         match self {
34             Borrowed(n) => quote!(*#n),
35             Owned(n) => n.clone(),
36         }
37     }
38 }
39