Consolidate Operand code
diff --git a/codegen/src/visit.rs b/codegen/src/visit.rs
index 818ad61..9f85df9 100644
--- a/codegen/src/visit.rs
+++ b/codegen/src/visit.rs
@@ -1,3 +1,4 @@
+use crate::operand::*;
use crate::{file, full, gen};
use inflections::Inflect;
use proc_macro2::{Span, TokenStream};
@@ -17,35 +18,6 @@
Ident::new(&name.to_snake_case(), Span::call_site())
}
-enum Operand {
- Borrowed(TokenStream),
- Owned(TokenStream),
-}
-
-use self::Operand::*;
-
-impl Operand {
- fn tokens(&self) -> &TokenStream {
- match self {
- Borrowed(n) | Owned(n) => n,
- }
- }
-
- fn ref_tokens(&self) -> TokenStream {
- match self {
- Borrowed(n) => n.clone(),
- Owned(n) => quote!(&#n),
- }
- }
-
- fn owned_tokens(&self) -> TokenStream {
- match self {
- Borrowed(n) => quote!(*#n),
- Owned(n) => n.clone(),
- }
- }
-}
-
fn simple_visit(item: &str, name: &Operand) -> TokenStream {
let ident = under_name(item);
let method = Ident::new(&format!("visit_{}", ident), Span::call_site());