pub(super) fn bin_op_str(op: &syn::BinOp) -> &'static str {
match op {
syn::BinOp::Add(_) => "+",
syn::BinOp::Sub(_) => "-",
syn::BinOp::Mul(_) => "*",
syn::BinOp::Div(_) => "/",
syn::BinOp::Rem(_) => "%",
syn::BinOp::And(_) => "&&",
syn::BinOp::Or(_) => "||",
syn::BinOp::BitXor(_) => "^",
syn::BinOp::BitAnd(_) => "&",
syn::BinOp::BitOr(_) => "|",
syn::BinOp::Shl(_) => "<<",
syn::BinOp::Shr(_) => ">>",
syn::BinOp::Eq(_) => "==",
syn::BinOp::Lt(_) => "<",
syn::BinOp::Le(_) => "<=",
syn::BinOp::Ne(_) => "!=",
syn::BinOp::Ge(_) => ">=",
syn::BinOp::Gt(_) => ">",
syn::BinOp::AddAssign(_) => "+=",
syn::BinOp::SubAssign(_) => "-=",
syn::BinOp::MulAssign(_) => "*=",
syn::BinOp::DivAssign(_) => "/=",
syn::BinOp::RemAssign(_) => "%=",
syn::BinOp::BitXorAssign(_) => "^=",
syn::BinOp::BitAndAssign(_) => "&=",
syn::BinOp::BitOrAssign(_) => "|=",
syn::BinOp::ShlAssign(_) => "<<=",
syn::BinOp::ShrAssign(_) => ">>=",
_ => "?op",
}
}
pub(super) fn un_op_str(op: &syn::UnOp) -> &'static str {
match op {
syn::UnOp::Deref(_) => "*",
syn::UnOp::Not(_) => "!",
syn::UnOp::Neg(_) => "-",
_ => "?un",
}
}