blob: db3bd18711050340e3c07bd83069a31c937c5e91 [file] [log] [blame]
use proc_macro2::TokenStream;
use quote::quote;
pub enum Operand {
Borrowed(TokenStream),
Owned(TokenStream),
}
pub use self::Operand::*;
impl Operand {
pub fn tokens(&self) -> &TokenStream {
match self {
Borrowed(n) | Owned(n) => n,
}
}
pub fn ref_tokens(&self) -> TokenStream {
match self {
Borrowed(n) => n.clone(),
Owned(n) => quote!(&#n),
}
}
pub fn ref_mut_tokens(&self) -> TokenStream {
match self {
Borrowed(n) => n.clone(),
Owned(n) => quote!(&mut #n),
}
}
pub fn owned_tokens(&self) -> TokenStream {
match self {
Borrowed(n) => quote!(*#n),
Owned(n) => n.clone(),
}
}
}