wagon_codegen/nodes/
inverse.rs1use quote::quote;
2use crate::SpannableIdent;
3
4use super::{Rc, ToTokensState};
5use proc_macro2::{TokenStream, Ident};
6use wagon_parser::parser::inverse::Inverse;
7
8impl<U> ToTokensState<U> for Inverse {
9 fn to_tokens(&self, state: &mut U, label: Rc<Ident>, attr_fun: fn(&mut U, Rc<Ident>, SpannableIdent)) -> TokenStream {
10 match self {
11 Self::Not(i) => {
12 let i_stream = i.to_tokens(state, label, attr_fun);
13 quote!(std::ops::Not::not(#i_stream)?)
14 },
15 Self::Comparison(c) => {
16 c.to_tokens(state, label, attr_fun)
17 },
18 }
19 }
20}