#[cfg(any(feature = "derive", feature = "full"))]
use crate::tt::TokenStreamHelper;
use crate::*;
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for Abi {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for Abi {
fn eq(&self, other: &Self) -> bool {
self.name == other.name
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for AngleBracketedGenericArguments {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for AngleBracketedGenericArguments {
fn eq(&self, other: &Self) -> bool {
self.colon2_token == other.colon2_token && self.args == other.args
}
}
#[cfg(feature = "full")]
impl Eq for Arm {}
#[cfg(feature = "full")]
impl PartialEq for Arm {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.pat == other.pat
&& self.guard == other.guard
&& self.body == other.body
&& self.comma == other.comma
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for AttrStyle {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for AttrStyle {
fn eq(&self, other: &Self) -> bool {
match (self, other) {
(AttrStyle::Outer, AttrStyle::Outer) => true,
(AttrStyle::Inner(_), AttrStyle::Inner(_)) => true,
_ => false,
}
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for Attribute {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for Attribute {
fn eq(&self, other: &Self) -> bool {
self.style == other.style
&& self.path == other.path
&& TokenStreamHelper(&self.tokens) == TokenStreamHelper(&other.tokens)
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for BareFnArg {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for BareFnArg {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.name == other.name && self.ty == other.ty
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for BinOp {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for BinOp {
fn eq(&self, other: &Self) -> bool {
match (self, other) {
(BinOp::Add(_), BinOp::Add(_)) => true,
(BinOp::Sub(_), BinOp::Sub(_)) => true,
(BinOp::Mul(_), BinOp::Mul(_)) => true,
(BinOp::Div(_), BinOp::Div(_)) => true,
(BinOp::Rem(_), BinOp::Rem(_)) => true,
(BinOp::And(_), BinOp::And(_)) => true,
(BinOp::Or(_), BinOp::Or(_)) => true,
(BinOp::BitXor(_), BinOp::BitXor(_)) => true,
(BinOp::BitAnd(_), BinOp::BitAnd(_)) => true,
(BinOp::BitOr(_), BinOp::BitOr(_)) => true,
(BinOp::Shl(_), BinOp::Shl(_)) => true,
(BinOp::Shr(_), BinOp::Shr(_)) => true,
(BinOp::Eq(_), BinOp::Eq(_)) => true,
(BinOp::Lt(_), BinOp::Lt(_)) => true,
(BinOp::Le(_), BinOp::Le(_)) => true,
(BinOp::Ne(_), BinOp::Ne(_)) => true,
(BinOp::Ge(_), BinOp::Ge(_)) => true,
(BinOp::Gt(_), BinOp::Gt(_)) => true,
(BinOp::AddEq(_), BinOp::AddEq(_)) => true,
(BinOp::SubEq(_), BinOp::SubEq(_)) => true,
(BinOp::MulEq(_), BinOp::MulEq(_)) => true,
(BinOp::DivEq(_), BinOp::DivEq(_)) => true,
(BinOp::RemEq(_), BinOp::RemEq(_)) => true,
(BinOp::BitXorEq(_), BinOp::BitXorEq(_)) => true,
(BinOp::BitAndEq(_), BinOp::BitAndEq(_)) => true,
(BinOp::BitOrEq(_), BinOp::BitOrEq(_)) => true,
(BinOp::ShlEq(_), BinOp::ShlEq(_)) => true,
(BinOp::ShrEq(_), BinOp::ShrEq(_)) => true,
_ => false,
}
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for Binding {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for Binding {
fn eq(&self, other: &Self) -> bool {
self.ident == other.ident && self.ty == other.ty
}
}
#[cfg(feature = "full")]
impl Eq for Block {}
#[cfg(feature = "full")]
impl PartialEq for Block {
fn eq(&self, other: &Self) -> bool {
self.stmts == other.stmts
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for BoundLifetimes {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for BoundLifetimes {
fn eq(&self, other: &Self) -> bool {
self.lifetimes == other.lifetimes
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for ConstParam {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for ConstParam {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.ident == other.ident
&& self.ty == other.ty
&& self.eq_token == other.eq_token
&& self.default == other.default
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for Constraint {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for Constraint {
fn eq(&self, other: &Self) -> bool {
self.ident == other.ident && self.bounds == other.bounds
}
}
#[cfg(feature = "derive")]
impl Eq for Data {}
#[cfg(feature = "derive")]
impl PartialEq for Data {
fn eq(&self, other: &Self) -> bool {
match (self, other) {
(Data::Struct(self0), Data::Struct(other0)) => self0 == other0,
(Data::Enum(self0), Data::Enum(other0)) => self0 == other0,
(Data::Union(self0), Data::Union(other0)) => self0 == other0,
_ => false,
}
}
}
#[cfg(feature = "derive")]
impl Eq for DataEnum {}
#[cfg(feature = "derive")]
impl PartialEq for DataEnum {
fn eq(&self, other: &Self) -> bool {
self.variants == other.variants
}
}
#[cfg(feature = "derive")]
impl Eq for DataStruct {}
#[cfg(feature = "derive")]
impl PartialEq for DataStruct {
fn eq(&self, other: &Self) -> bool {
self.fields == other.fields && self.semi_token == other.semi_token
}
}
#[cfg(feature = "derive")]
impl Eq for DataUnion {}
#[cfg(feature = "derive")]
impl PartialEq for DataUnion {
fn eq(&self, other: &Self) -> bool {
self.fields == other.fields
}
}
#[cfg(feature = "derive")]
impl Eq for DeriveInput {}
#[cfg(feature = "derive")]
impl PartialEq for DeriveInput {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.vis == other.vis
&& self.ident == other.ident
&& self.generics == other.generics
&& self.data == other.data
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for Expr {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for Expr {
fn eq(&self, other: &Self) -> bool {
match (self, other) {
#[cfg(feature = "full")]
(Expr::Array(self0), Expr::Array(other0)) => self0 == other0,
#[cfg(feature = "full")]
(Expr::Assign(self0), Expr::Assign(other0)) => self0 == other0,
#[cfg(feature = "full")]
(Expr::AssignOp(self0), Expr::AssignOp(other0)) => self0 == other0,
#[cfg(feature = "full")]
(Expr::Async(self0), Expr::Async(other0)) => self0 == other0,
#[cfg(feature = "full")]
(Expr::Await(self0), Expr::Await(other0)) => self0 == other0,
(Expr::Binary(self0), Expr::Binary(other0)) => self0 == other0,
#[cfg(feature = "full")]
(Expr::Block(self0), Expr::Block(other0)) => self0 == other0,
#[cfg(feature = "full")]
(Expr::Box(self0), Expr::Box(other0)) => self0 == other0,
#[cfg(feature = "full")]
(Expr::Break(self0), Expr::Break(other0)) => self0 == other0,
(Expr::Call(self0), Expr::Call(other0)) => self0 == other0,
(Expr::Cast(self0), Expr::Cast(other0)) => self0 == other0,
#[cfg(feature = "full")]
(Expr::Closure(self0), Expr::Closure(other0)) => self0 == other0,
#[cfg(feature = "full")]
(Expr::Continue(self0), Expr::Continue(other0)) => self0 == other0,
(Expr::Field(self0), Expr::Field(other0)) => self0 == other0,
#[cfg(feature = "full")]
(Expr::ForLoop(self0), Expr::ForLoop(other0)) => self0 == other0,
#[cfg(feature = "full")]
(Expr::Group(self0), Expr::Group(other0)) => self0 == other0,
#[cfg(feature = "full")]
(Expr::If(self0), Expr::If(other0)) => self0 == other0,
(Expr::Index(self0), Expr::Index(other0)) => self0 == other0,
#[cfg(feature = "full")]
(Expr::Let(self0), Expr::Let(other0)) => self0 == other0,
(Expr::Lit(self0), Expr::Lit(other0)) => self0 == other0,
#[cfg(feature = "full")]
(Expr::Loop(self0), Expr::Loop(other0)) => self0 == other0,
#[cfg(feature = "full")]
(Expr::Macro(self0), Expr::Macro(other0)) => self0 == other0,
#[cfg(feature = "full")]
(Expr::Match(self0), Expr::Match(other0)) => self0 == other0,
#[cfg(feature = "full")]
(Expr::MethodCall(self0), Expr::MethodCall(other0)) => self0 == other0,
(Expr::Paren(self0), Expr::Paren(other0)) => self0 == other0,
(Expr::Path(self0), Expr::Path(other0)) => self0 == other0,
#[cfg(feature = "full")]
(Expr::Range(self0), Expr::Range(other0)) => self0 == other0,
#[cfg(feature = "full")]
(Expr::Reference(self0), Expr::Reference(other0)) => self0 == other0,
#[cfg(feature = "full")]
(Expr::Repeat(self0), Expr::Repeat(other0)) => self0 == other0,
#[cfg(feature = "full")]
(Expr::Return(self0), Expr::Return(other0)) => self0 == other0,
#[cfg(feature = "full")]
(Expr::Struct(self0), Expr::Struct(other0)) => self0 == other0,
#[cfg(feature = "full")]
(Expr::Try(self0), Expr::Try(other0)) => self0 == other0,
#[cfg(feature = "full")]
(Expr::TryBlock(self0), Expr::TryBlock(other0)) => self0 == other0,
#[cfg(feature = "full")]
(Expr::Tuple(self0), Expr::Tuple(other0)) => self0 == other0,
#[cfg(feature = "full")]
(Expr::Type(self0), Expr::Type(other0)) => self0 == other0,
(Expr::Unary(self0), Expr::Unary(other0)) => self0 == other0,
#[cfg(feature = "full")]
(Expr::Unsafe(self0), Expr::Unsafe(other0)) => self0 == other0,
(Expr::Verbatim(self0), Expr::Verbatim(other0)) => {
TokenStreamHelper(self0) == TokenStreamHelper(other0)
}
#[cfg(feature = "full")]
(Expr::While(self0), Expr::While(other0)) => self0 == other0,
#[cfg(feature = "full")]
(Expr::Yield(self0), Expr::Yield(other0)) => self0 == other0,
_ => false,
}
}
}
#[cfg(feature = "full")]
impl Eq for ExprArray {}
#[cfg(feature = "full")]
impl PartialEq for ExprArray {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.elems == other.elems
}
}
#[cfg(feature = "full")]
impl Eq for ExprAssign {}
#[cfg(feature = "full")]
impl PartialEq for ExprAssign {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.left == other.left && self.right == other.right
}
}
#[cfg(feature = "full")]
impl Eq for ExprAssignOp {}
#[cfg(feature = "full")]
impl PartialEq for ExprAssignOp {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.left == other.left
&& self.op == other.op
&& self.right == other.right
}
}
#[cfg(feature = "full")]
impl Eq for ExprAsync {}
#[cfg(feature = "full")]
impl PartialEq for ExprAsync {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.capture == other.capture && self.block == other.block
}
}
#[cfg(feature = "full")]
impl Eq for ExprAwait {}
#[cfg(feature = "full")]
impl PartialEq for ExprAwait {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.base == other.base
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for ExprBinary {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for ExprBinary {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.left == other.left
&& self.op == other.op
&& self.right == other.right
}
}
#[cfg(feature = "full")]
impl Eq for ExprBlock {}
#[cfg(feature = "full")]
impl PartialEq for ExprBlock {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.label == other.label && self.block == other.block
}
}
#[cfg(feature = "full")]
impl Eq for ExprBox {}
#[cfg(feature = "full")]
impl PartialEq for ExprBox {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.expr == other.expr
}
}
#[cfg(feature = "full")]
impl Eq for ExprBreak {}
#[cfg(feature = "full")]
impl PartialEq for ExprBreak {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.label == other.label && self.expr == other.expr
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for ExprCall {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for ExprCall {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.func == other.func && self.args == other.args
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for ExprCast {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for ExprCast {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.expr == other.expr && self.ty == other.ty
}
}
#[cfg(feature = "full")]
impl Eq for ExprClosure {}
#[cfg(feature = "full")]
impl PartialEq for ExprClosure {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.asyncness == other.asyncness
&& self.movability == other.movability
&& self.capture == other.capture
&& self.inputs == other.inputs
&& self.output == other.output
&& self.body == other.body
}
}
#[cfg(feature = "full")]
impl Eq for ExprContinue {}
#[cfg(feature = "full")]
impl PartialEq for ExprContinue {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.label == other.label
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for ExprField {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for ExprField {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.base == other.base && self.member == other.member
}
}
#[cfg(feature = "full")]
impl Eq for ExprForLoop {}
#[cfg(feature = "full")]
impl PartialEq for ExprForLoop {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.label == other.label
&& self.pat == other.pat
&& self.expr == other.expr
&& self.body == other.body
}
}
#[cfg(feature = "full")]
impl Eq for ExprGroup {}
#[cfg(feature = "full")]
impl PartialEq for ExprGroup {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.expr == other.expr
}
}
#[cfg(feature = "full")]
impl Eq for ExprIf {}
#[cfg(feature = "full")]
impl PartialEq for ExprIf {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.cond == other.cond
&& self.then_branch == other.then_branch
&& self.else_branch == other.else_branch
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for ExprIndex {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for ExprIndex {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.expr == other.expr && self.index == other.index
}
}
#[cfg(feature = "full")]
impl Eq for ExprLet {}
#[cfg(feature = "full")]
impl PartialEq for ExprLet {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.pat == other.pat && self.expr == other.expr
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for ExprLit {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for ExprLit {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.lit == other.lit
}
}
#[cfg(feature = "full")]
impl Eq for ExprLoop {}
#[cfg(feature = "full")]
impl PartialEq for ExprLoop {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.label == other.label && self.body == other.body
}
}
#[cfg(feature = "full")]
impl Eq for ExprMacro {}
#[cfg(feature = "full")]
impl PartialEq for ExprMacro {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.mac == other.mac
}
}
#[cfg(feature = "full")]
impl Eq for ExprMatch {}
#[cfg(feature = "full")]
impl PartialEq for ExprMatch {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.expr == other.expr && self.arms == other.arms
}
}
#[cfg(feature = "full")]
impl Eq for ExprMethodCall {}
#[cfg(feature = "full")]
impl PartialEq for ExprMethodCall {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.receiver == other.receiver
&& self.method == other.method
&& self.turbofish == other.turbofish
&& self.args == other.args
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for ExprParen {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for ExprParen {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.expr == other.expr
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for ExprPath {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for ExprPath {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.qself == other.qself && self.path == other.path
}
}
#[cfg(feature = "full")]
impl Eq for ExprRange {}
#[cfg(feature = "full")]
impl PartialEq for ExprRange {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.from == other.from
&& self.limits == other.limits
&& self.to == other.to
}
}
#[cfg(feature = "full")]
impl Eq for ExprReference {}
#[cfg(feature = "full")]
impl PartialEq for ExprReference {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.mutability == other.mutability && self.expr == other.expr
}
}
#[cfg(feature = "full")]
impl Eq for ExprRepeat {}
#[cfg(feature = "full")]
impl PartialEq for ExprRepeat {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.expr == other.expr && self.len == other.len
}
}
#[cfg(feature = "full")]
impl Eq for ExprReturn {}
#[cfg(feature = "full")]
impl PartialEq for ExprReturn {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.expr == other.expr
}
}
#[cfg(feature = "full")]
impl Eq for ExprStruct {}
#[cfg(feature = "full")]
impl PartialEq for ExprStruct {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.path == other.path
&& self.fields == other.fields
&& self.dot2_token == other.dot2_token
&& self.rest == other.rest
}
}
#[cfg(feature = "full")]
impl Eq for ExprTry {}
#[cfg(feature = "full")]
impl PartialEq for ExprTry {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.expr == other.expr
}
}
#[cfg(feature = "full")]
impl Eq for ExprTryBlock {}
#[cfg(feature = "full")]
impl PartialEq for ExprTryBlock {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.block == other.block
}
}
#[cfg(feature = "full")]
impl Eq for ExprTuple {}
#[cfg(feature = "full")]
impl PartialEq for ExprTuple {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.elems == other.elems
}
}
#[cfg(feature = "full")]
impl Eq for ExprType {}
#[cfg(feature = "full")]
impl PartialEq for ExprType {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.expr == other.expr && self.ty == other.ty
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for ExprUnary {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for ExprUnary {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.op == other.op && self.expr == other.expr
}
}
#[cfg(feature = "full")]
impl Eq for ExprUnsafe {}
#[cfg(feature = "full")]
impl PartialEq for ExprUnsafe {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.block == other.block
}
}
#[cfg(feature = "full")]
impl Eq for ExprWhile {}
#[cfg(feature = "full")]
impl PartialEq for ExprWhile {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.label == other.label
&& self.cond == other.cond
&& self.body == other.body
}
}
#[cfg(feature = "full")]
impl Eq for ExprYield {}
#[cfg(feature = "full")]
impl PartialEq for ExprYield {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.expr == other.expr
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for Field {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for Field {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.vis == other.vis
&& self.ident == other.ident
&& self.colon_token == other.colon_token
&& self.ty == other.ty
}
}
#[cfg(feature = "full")]
impl Eq for FieldPat {}
#[cfg(feature = "full")]
impl PartialEq for FieldPat {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.member == other.member
&& self.colon_token == other.colon_token
&& self.pat == other.pat
}
}
#[cfg(feature = "full")]
impl Eq for FieldValue {}
#[cfg(feature = "full")]
impl PartialEq for FieldValue {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.member == other.member
&& self.colon_token == other.colon_token
&& self.expr == other.expr
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for Fields {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for Fields {
fn eq(&self, other: &Self) -> bool {
match (self, other) {
(Fields::Named(self0), Fields::Named(other0)) => self0 == other0,
(Fields::Unnamed(self0), Fields::Unnamed(other0)) => self0 == other0,
(Fields::Unit, Fields::Unit) => true,
_ => false,
}
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for FieldsNamed {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for FieldsNamed {
fn eq(&self, other: &Self) -> bool {
self.named == other.named
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for FieldsUnnamed {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for FieldsUnnamed {
fn eq(&self, other: &Self) -> bool {
self.unnamed == other.unnamed
}
}
#[cfg(feature = "full")]
impl Eq for File {}
#[cfg(feature = "full")]
impl PartialEq for File {
fn eq(&self, other: &Self) -> bool {
self.shebang == other.shebang && self.attrs == other.attrs && self.items == other.items
}
}
#[cfg(feature = "full")]
impl Eq for FnArg {}
#[cfg(feature = "full")]
impl PartialEq for FnArg {
fn eq(&self, other: &Self) -> bool {
match (self, other) {
(FnArg::Receiver(self0), FnArg::Receiver(other0)) => self0 == other0,
(FnArg::Typed(self0), FnArg::Typed(other0)) => self0 == other0,
_ => false,
}
}
}
#[cfg(feature = "full")]
impl Eq for ForeignItem {}
#[cfg(feature = "full")]
impl PartialEq for ForeignItem {
fn eq(&self, other: &Self) -> bool {
match (self, other) {
(ForeignItem::Fn(self0), ForeignItem::Fn(other0)) => self0 == other0,
(ForeignItem::Static(self0), ForeignItem::Static(other0)) => self0 == other0,
(ForeignItem::Type(self0), ForeignItem::Type(other0)) => self0 == other0,
(ForeignItem::Macro(self0), ForeignItem::Macro(other0)) => self0 == other0,
(ForeignItem::Verbatim(self0), ForeignItem::Verbatim(other0)) => {
TokenStreamHelper(self0) == TokenStreamHelper(other0)
}
_ => false,
}
}
}
#[cfg(feature = "full")]
impl Eq for ForeignItemFn {}
#[cfg(feature = "full")]
impl PartialEq for ForeignItemFn {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.vis == other.vis && self.sig == other.sig
}
}
#[cfg(feature = "full")]
impl Eq for ForeignItemMacro {}
#[cfg(feature = "full")]
impl PartialEq for ForeignItemMacro {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.mac == other.mac && self.semi_token == other.semi_token
}
}
#[cfg(feature = "full")]
impl Eq for ForeignItemStatic {}
#[cfg(feature = "full")]
impl PartialEq for ForeignItemStatic {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.vis == other.vis
&& self.mutability == other.mutability
&& self.ident == other.ident
&& self.ty == other.ty
}
}
#[cfg(feature = "full")]
impl Eq for ForeignItemType {}
#[cfg(feature = "full")]
impl PartialEq for ForeignItemType {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.vis == other.vis && self.ident == other.ident
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for GenericArgument {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for GenericArgument {
fn eq(&self, other: &Self) -> bool {
match (self, other) {
(GenericArgument::Lifetime(self0), GenericArgument::Lifetime(other0)) => {
self0 == other0
}
(GenericArgument::Type(self0), GenericArgument::Type(other0)) => self0 == other0,
(GenericArgument::Binding(self0), GenericArgument::Binding(other0)) => self0 == other0,
(GenericArgument::Constraint(self0), GenericArgument::Constraint(other0)) => {
self0 == other0
}
(GenericArgument::Const(self0), GenericArgument::Const(other0)) => self0 == other0,
_ => false,
}
}
}
#[cfg(feature = "full")]
impl Eq for GenericMethodArgument {}
#[cfg(feature = "full")]
impl PartialEq for GenericMethodArgument {
fn eq(&self, other: &Self) -> bool {
match (self, other) {
(GenericMethodArgument::Type(self0), GenericMethodArgument::Type(other0)) => {
self0 == other0
}
(GenericMethodArgument::Const(self0), GenericMethodArgument::Const(other0)) => {
self0 == other0
}
_ => false,
}
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for GenericParam {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for GenericParam {
fn eq(&self, other: &Self) -> bool {
match (self, other) {
(GenericParam::Type(self0), GenericParam::Type(other0)) => self0 == other0,
(GenericParam::Lifetime(self0), GenericParam::Lifetime(other0)) => self0 == other0,
(GenericParam::Const(self0), GenericParam::Const(other0)) => self0 == other0,
_ => false,
}
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for Generics {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for Generics {
fn eq(&self, other: &Self) -> bool {
self.lt_token == other.lt_token
&& self.params == other.params
&& self.gt_token == other.gt_token
&& self.where_clause == other.where_clause
}
}
#[cfg(feature = "full")]
impl Eq for ImplItem {}
#[cfg(feature = "full")]
impl PartialEq for ImplItem {
fn eq(&self, other: &Self) -> bool {
match (self, other) {
(ImplItem::Const(self0), ImplItem::Const(other0)) => self0 == other0,
(ImplItem::Method(self0), ImplItem::Method(other0)) => self0 == other0,
(ImplItem::Type(self0), ImplItem::Type(other0)) => self0 == other0,
(ImplItem::Macro(self0), ImplItem::Macro(other0)) => self0 == other0,
(ImplItem::Verbatim(self0), ImplItem::Verbatim(other0)) => {
TokenStreamHelper(self0) == TokenStreamHelper(other0)
}
_ => false,
}
}
}
#[cfg(feature = "full")]
impl Eq for ImplItemConst {}
#[cfg(feature = "full")]
impl PartialEq for ImplItemConst {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.vis == other.vis
&& self.defaultness == other.defaultness
&& self.ident == other.ident
&& self.ty == other.ty
&& self.expr == other.expr
}
}
#[cfg(feature = "full")]
impl Eq for ImplItemMacro {}
#[cfg(feature = "full")]
impl PartialEq for ImplItemMacro {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.mac == other.mac && self.semi_token == other.semi_token
}
}
#[cfg(feature = "full")]
impl Eq for ImplItemMethod {}
#[cfg(feature = "full")]
impl PartialEq for ImplItemMethod {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.vis == other.vis
&& self.defaultness == other.defaultness
&& self.sig == other.sig
&& self.block == other.block
}
}
#[cfg(feature = "full")]
impl Eq for ImplItemType {}
#[cfg(feature = "full")]
impl PartialEq for ImplItemType {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.vis == other.vis
&& self.defaultness == other.defaultness
&& self.ident == other.ident
&& self.generics == other.generics
&& self.ty == other.ty
}
}
#[cfg(feature = "full")]
impl Eq for Item {}
#[cfg(feature = "full")]
impl PartialEq for Item {
fn eq(&self, other: &Self) -> bool {
match (self, other) {
(Item::Const(self0), Item::Const(other0)) => self0 == other0,
(Item::Enum(self0), Item::Enum(other0)) => self0 == other0,
(Item::ExternCrate(self0), Item::ExternCrate(other0)) => self0 == other0,
(Item::Fn(self0), Item::Fn(other0)) => self0 == other0,
(Item::ForeignMod(self0), Item::ForeignMod(other0)) => self0 == other0,
(Item::Impl(self0), Item::Impl(other0)) => self0 == other0,
(Item::Macro(self0), Item::Macro(other0)) => self0 == other0,
(Item::Macro2(self0), Item::Macro2(other0)) => self0 == other0,
(Item::Mod(self0), Item::Mod(other0)) => self0 == other0,
(Item::Static(self0), Item::Static(other0)) => self0 == other0,
(Item::Struct(self0), Item::Struct(other0)) => self0 == other0,
(Item::Trait(self0), Item::Trait(other0)) => self0 == other0,
(Item::TraitAlias(self0), Item::TraitAlias(other0)) => self0 == other0,
(Item::Type(self0), Item::Type(other0)) => self0 == other0,
(Item::Union(self0), Item::Union(other0)) => self0 == other0,
(Item::Use(self0), Item::Use(other0)) => self0 == other0,
(Item::Verbatim(self0), Item::Verbatim(other0)) => {
TokenStreamHelper(self0) == TokenStreamHelper(other0)
}
_ => false,
}
}
}
#[cfg(feature = "full")]
impl Eq for ItemConst {}
#[cfg(feature = "full")]
impl PartialEq for ItemConst {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.vis == other.vis
&& self.ident == other.ident
&& self.ty == other.ty
&& self.expr == other.expr
}
}
#[cfg(feature = "full")]
impl Eq for ItemEnum {}
#[cfg(feature = "full")]
impl PartialEq for ItemEnum {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.vis == other.vis
&& self.ident == other.ident
&& self.generics == other.generics
&& self.variants == other.variants
}
}
#[cfg(feature = "full")]
impl Eq for ItemExternCrate {}
#[cfg(feature = "full")]
impl PartialEq for ItemExternCrate {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.vis == other.vis
&& self.ident == other.ident
&& self.rename == other.rename
}
}
#[cfg(feature = "full")]
impl Eq for ItemFn {}
#[cfg(feature = "full")]
impl PartialEq for ItemFn {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.vis == other.vis
&& self.sig == other.sig
&& self.block == other.block
}
}
#[cfg(feature = "full")]
impl Eq for ItemForeignMod {}
#[cfg(feature = "full")]
impl PartialEq for ItemForeignMod {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.abi == other.abi && self.items == other.items
}
}
#[cfg(feature = "full")]
impl Eq for ItemImpl {}
#[cfg(feature = "full")]
impl PartialEq for ItemImpl {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.defaultness == other.defaultness
&& self.unsafety == other.unsafety
&& self.generics == other.generics
&& self.trait_ == other.trait_
&& self.self_ty == other.self_ty
&& self.items == other.items
}
}
#[cfg(feature = "full")]
impl Eq for ItemMacro {}
#[cfg(feature = "full")]
impl PartialEq for ItemMacro {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.ident == other.ident
&& self.mac == other.mac
&& self.semi_token == other.semi_token
}
}
#[cfg(feature = "full")]
impl Eq for ItemMacro2 {}
#[cfg(feature = "full")]
impl PartialEq for ItemMacro2 {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.vis == other.vis
&& self.ident == other.ident
&& TokenStreamHelper(&self.rules) == TokenStreamHelper(&other.rules)
}
}
#[cfg(feature = "full")]
impl Eq for ItemMod {}
#[cfg(feature = "full")]
impl PartialEq for ItemMod {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.vis == other.vis
&& self.ident == other.ident
&& self.content == other.content
&& self.semi == other.semi
}
}
#[cfg(feature = "full")]
impl Eq for ItemStatic {}
#[cfg(feature = "full")]
impl PartialEq for ItemStatic {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.vis == other.vis
&& self.mutability == other.mutability
&& self.ident == other.ident
&& self.ty == other.ty
&& self.expr == other.expr
}
}
#[cfg(feature = "full")]
impl Eq for ItemStruct {}
#[cfg(feature = "full")]
impl PartialEq for ItemStruct {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.vis == other.vis
&& self.ident == other.ident
&& self.generics == other.generics
&& self.fields == other.fields
&& self.semi_token == other.semi_token
}
}
#[cfg(feature = "full")]
impl Eq for ItemTrait {}
#[cfg(feature = "full")]
impl PartialEq for ItemTrait {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.vis == other.vis
&& self.unsafety == other.unsafety
&& self.auto_token == other.auto_token
&& self.ident == other.ident
&& self.generics == other.generics
&& self.colon_token == other.colon_token
&& self.supertraits == other.supertraits
&& self.items == other.items
}
}
#[cfg(feature = "full")]
impl Eq for ItemTraitAlias {}
#[cfg(feature = "full")]
impl PartialEq for ItemTraitAlias {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.vis == other.vis
&& self.ident == other.ident
&& self.generics == other.generics
&& self.bounds == other.bounds
}
}
#[cfg(feature = "full")]
impl Eq for ItemType {}
#[cfg(feature = "full")]
impl PartialEq for ItemType {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.vis == other.vis
&& self.ident == other.ident
&& self.generics == other.generics
&& self.ty == other.ty
}
}
#[cfg(feature = "full")]
impl Eq for ItemUnion {}
#[cfg(feature = "full")]
impl PartialEq for ItemUnion {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.vis == other.vis
&& self.ident == other.ident
&& self.generics == other.generics
&& self.fields == other.fields
}
}
#[cfg(feature = "full")]
impl Eq for ItemUse {}
#[cfg(feature = "full")]
impl PartialEq for ItemUse {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.vis == other.vis
&& self.leading_colon == other.leading_colon
&& self.tree == other.tree
}
}
#[cfg(feature = "full")]
impl Eq for Label {}
#[cfg(feature = "full")]
impl PartialEq for Label {
fn eq(&self, other: &Self) -> bool {
self.name == other.name
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for LifetimeDef {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for LifetimeDef {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.lifetime == other.lifetime
&& self.colon_token == other.colon_token
&& self.bounds == other.bounds
}
}
impl Eq for Lit {}
impl PartialEq for Lit {
fn eq(&self, other: &Self) -> bool {
match (self, other) {
(Lit::Str(self0), Lit::Str(other0)) => self0 == other0,
(Lit::ByteStr(self0), Lit::ByteStr(other0)) => self0 == other0,
(Lit::Byte(self0), Lit::Byte(other0)) => self0 == other0,
(Lit::Char(self0), Lit::Char(other0)) => self0 == other0,
(Lit::Int(self0), Lit::Int(other0)) => self0 == other0,
(Lit::Float(self0), Lit::Float(other0)) => self0 == other0,
(Lit::Bool(self0), Lit::Bool(other0)) => self0 == other0,
(Lit::Verbatim(self0), Lit::Verbatim(other0)) => {
self0.to_string() == other0.to_string()
}
_ => false,
}
}
}
impl Eq for LitBool {}
impl PartialEq for LitBool {
fn eq(&self, other: &Self) -> bool {
self.value == other.value
}
}
impl Eq for LitByte {}
impl Eq for LitByteStr {}
impl Eq for LitChar {}
impl Eq for LitFloat {}
impl Eq for LitInt {}
impl Eq for LitStr {}
#[cfg(feature = "full")]
impl Eq for Local {}
#[cfg(feature = "full")]
impl PartialEq for Local {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.pat == other.pat && self.init == other.init
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for Macro {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for Macro {
fn eq(&self, other: &Self) -> bool {
self.path == other.path
&& self.delimiter == other.delimiter
&& TokenStreamHelper(&self.tokens) == TokenStreamHelper(&other.tokens)
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for MacroDelimiter {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for MacroDelimiter {
fn eq(&self, other: &Self) -> bool {
match (self, other) {
(MacroDelimiter::Paren(_), MacroDelimiter::Paren(_)) => true,
(MacroDelimiter::Brace(_), MacroDelimiter::Brace(_)) => true,
(MacroDelimiter::Bracket(_), MacroDelimiter::Bracket(_)) => true,
_ => false,
}
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for Meta {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for Meta {
fn eq(&self, other: &Self) -> bool {
match (self, other) {
(Meta::Path(self0), Meta::Path(other0)) => self0 == other0,
(Meta::List(self0), Meta::List(other0)) => self0 == other0,
(Meta::NameValue(self0), Meta::NameValue(other0)) => self0 == other0,
_ => false,
}
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for MetaList {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for MetaList {
fn eq(&self, other: &Self) -> bool {
self.path == other.path && self.nested == other.nested
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for MetaNameValue {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for MetaNameValue {
fn eq(&self, other: &Self) -> bool {
self.path == other.path && self.lit == other.lit
}
}
#[cfg(feature = "full")]
impl Eq for MethodTurbofish {}
#[cfg(feature = "full")]
impl PartialEq for MethodTurbofish {
fn eq(&self, other: &Self) -> bool {
self.args == other.args
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for NestedMeta {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for NestedMeta {
fn eq(&self, other: &Self) -> bool {
match (self, other) {
(NestedMeta::Meta(self0), NestedMeta::Meta(other0)) => self0 == other0,
(NestedMeta::Lit(self0), NestedMeta::Lit(other0)) => self0 == other0,
_ => false,
}
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for ParenthesizedGenericArguments {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for ParenthesizedGenericArguments {
fn eq(&self, other: &Self) -> bool {
self.inputs == other.inputs && self.output == other.output
}
}
#[cfg(feature = "full")]
impl Eq for Pat {}
#[cfg(feature = "full")]
impl PartialEq for Pat {
fn eq(&self, other: &Self) -> bool {
match (self, other) {
(Pat::Box(self0), Pat::Box(other0)) => self0 == other0,
(Pat::Ident(self0), Pat::Ident(other0)) => self0 == other0,
(Pat::Lit(self0), Pat::Lit(other0)) => self0 == other0,
(Pat::Macro(self0), Pat::Macro(other0)) => self0 == other0,
(Pat::Or(self0), Pat::Or(other0)) => self0 == other0,
(Pat::Path(self0), Pat::Path(other0)) => self0 == other0,
(Pat::Range(self0), Pat::Range(other0)) => self0 == other0,
(Pat::Reference(self0), Pat::Reference(other0)) => self0 == other0,
(Pat::Rest(self0), Pat::Rest(other0)) => self0 == other0,
(Pat::Slice(self0), Pat::Slice(other0)) => self0 == other0,
(Pat::Struct(self0), Pat::Struct(other0)) => self0 == other0,
(Pat::Tuple(self0), Pat::Tuple(other0)) => self0 == other0,
(Pat::TupleStruct(self0), Pat::TupleStruct(other0)) => self0 == other0,
(Pat::Type(self0), Pat::Type(other0)) => self0 == other0,
(Pat::Verbatim(self0), Pat::Verbatim(other0)) => {
TokenStreamHelper(self0) == TokenStreamHelper(other0)
}
(Pat::Wild(self0), Pat::Wild(other0)) => self0 == other0,
_ => false,
}
}
}
#[cfg(feature = "full")]
impl Eq for PatBox {}
#[cfg(feature = "full")]
impl PartialEq for PatBox {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.pat == other.pat
}
}
#[cfg(feature = "full")]
impl Eq for PatIdent {}
#[cfg(feature = "full")]
impl PartialEq for PatIdent {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.by_ref == other.by_ref
&& self.mutability == other.mutability
&& self.ident == other.ident
&& self.subpat == other.subpat
}
}
#[cfg(feature = "full")]
impl Eq for PatLit {}
#[cfg(feature = "full")]
impl PartialEq for PatLit {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.expr == other.expr
}
}
#[cfg(feature = "full")]
impl Eq for PatMacro {}
#[cfg(feature = "full")]
impl PartialEq for PatMacro {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.mac == other.mac
}
}
#[cfg(feature = "full")]
impl Eq for PatOr {}
#[cfg(feature = "full")]
impl PartialEq for PatOr {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.leading_vert == other.leading_vert
&& self.cases == other.cases
}
}
#[cfg(feature = "full")]
impl Eq for PatPath {}
#[cfg(feature = "full")]
impl PartialEq for PatPath {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.qself == other.qself && self.path == other.path
}
}
#[cfg(feature = "full")]
impl Eq for PatRange {}
#[cfg(feature = "full")]
impl PartialEq for PatRange {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.lo == other.lo
&& self.limits == other.limits
&& self.hi == other.hi
}
}
#[cfg(feature = "full")]
impl Eq for PatReference {}
#[cfg(feature = "full")]
impl PartialEq for PatReference {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.mutability == other.mutability && self.pat == other.pat
}
}
#[cfg(feature = "full")]
impl Eq for PatRest {}
#[cfg(feature = "full")]
impl PartialEq for PatRest {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
}
}
#[cfg(feature = "full")]
impl Eq for PatSlice {}
#[cfg(feature = "full")]
impl PartialEq for PatSlice {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.elems == other.elems
}
}
#[cfg(feature = "full")]
impl Eq for PatStruct {}
#[cfg(feature = "full")]
impl PartialEq for PatStruct {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.path == other.path
&& self.fields == other.fields
&& self.dot2_token == other.dot2_token
}
}
#[cfg(feature = "full")]
impl Eq for PatTuple {}
#[cfg(feature = "full")]
impl PartialEq for PatTuple {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.elems == other.elems
}
}
#[cfg(feature = "full")]
impl Eq for PatTupleStruct {}
#[cfg(feature = "full")]
impl PartialEq for PatTupleStruct {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.path == other.path && self.pat == other.pat
}
}
#[cfg(feature = "full")]
impl Eq for PatType {}
#[cfg(feature = "full")]
impl PartialEq for PatType {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.pat == other.pat && self.ty == other.ty
}
}
#[cfg(feature = "full")]
impl Eq for PatWild {}
#[cfg(feature = "full")]
impl PartialEq for PatWild {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for Path {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for Path {
fn eq(&self, other: &Self) -> bool {
self.leading_colon == other.leading_colon && self.segments == other.segments
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for PathArguments {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for PathArguments {
fn eq(&self, other: &Self) -> bool {
match (self, other) {
(PathArguments::None, PathArguments::None) => true,
(PathArguments::AngleBracketed(self0), PathArguments::AngleBracketed(other0)) => {
self0 == other0
}
(PathArguments::Parenthesized(self0), PathArguments::Parenthesized(other0)) => {
self0 == other0
}
_ => false,
}
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for PathSegment {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for PathSegment {
fn eq(&self, other: &Self) -> bool {
self.ident == other.ident && self.arguments == other.arguments
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for PredicateEq {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for PredicateEq {
fn eq(&self, other: &Self) -> bool {
self.lhs_ty == other.lhs_ty && self.rhs_ty == other.rhs_ty
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for PredicateLifetime {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for PredicateLifetime {
fn eq(&self, other: &Self) -> bool {
self.lifetime == other.lifetime && self.bounds == other.bounds
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for PredicateType {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for PredicateType {
fn eq(&self, other: &Self) -> bool {
self.lifetimes == other.lifetimes
&& self.bounded_ty == other.bounded_ty
&& self.bounds == other.bounds
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for QSelf {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for QSelf {
fn eq(&self, other: &Self) -> bool {
self.ty == other.ty && self.position == other.position && self.as_token == other.as_token
}
}
#[cfg(feature = "full")]
impl Eq for RangeLimits {}
#[cfg(feature = "full")]
impl PartialEq for RangeLimits {
fn eq(&self, other: &Self) -> bool {
match (self, other) {
(RangeLimits::HalfOpen(_), RangeLimits::HalfOpen(_)) => true,
(RangeLimits::Closed(_), RangeLimits::Closed(_)) => true,
_ => false,
}
}
}
#[cfg(feature = "full")]
impl Eq for Receiver {}
#[cfg(feature = "full")]
impl PartialEq for Receiver {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.reference == other.reference
&& self.mutability == other.mutability
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for ReturnType {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for ReturnType {
fn eq(&self, other: &Self) -> bool {
match (self, other) {
(ReturnType::Default, ReturnType::Default) => true,
(ReturnType::Type(_, self1), ReturnType::Type(_, other1)) => self1 == other1,
_ => false,
}
}
}
#[cfg(feature = "full")]
impl Eq for Signature {}
#[cfg(feature = "full")]
impl PartialEq for Signature {
fn eq(&self, other: &Self) -> bool {
self.constness == other.constness
&& self.asyncness == other.asyncness
&& self.unsafety == other.unsafety
&& self.abi == other.abi
&& self.ident == other.ident
&& self.generics == other.generics
&& self.inputs == other.inputs
&& self.variadic == other.variadic
&& self.output == other.output
}
}
#[cfg(feature = "full")]
impl Eq for Stmt {}
#[cfg(feature = "full")]
impl PartialEq for Stmt {
fn eq(&self, other: &Self) -> bool {
match (self, other) {
(Stmt::Local(self0), Stmt::Local(other0)) => self0 == other0,
(Stmt::Item(self0), Stmt::Item(other0)) => self0 == other0,
(Stmt::Expr(self0), Stmt::Expr(other0)) => self0 == other0,
(Stmt::Semi(self0, _), Stmt::Semi(other0, _)) => self0 == other0,
_ => false,
}
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for TraitBound {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for TraitBound {
fn eq(&self, other: &Self) -> bool {
self.paren_token == other.paren_token
&& self.modifier == other.modifier
&& self.lifetimes == other.lifetimes
&& self.path == other.path
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for TraitBoundModifier {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for TraitBoundModifier {
fn eq(&self, other: &Self) -> bool {
match (self, other) {
(TraitBoundModifier::None, TraitBoundModifier::None) => true,
(TraitBoundModifier::Maybe(_), TraitBoundModifier::Maybe(_)) => true,
_ => false,
}
}
}
#[cfg(feature = "full")]
impl Eq for TraitItem {}
#[cfg(feature = "full")]
impl PartialEq for TraitItem {
fn eq(&self, other: &Self) -> bool {
match (self, other) {
(TraitItem::Const(self0), TraitItem::Const(other0)) => self0 == other0,
(TraitItem::Method(self0), TraitItem::Method(other0)) => self0 == other0,
(TraitItem::Type(self0), TraitItem::Type(other0)) => self0 == other0,
(TraitItem::Macro(self0), TraitItem::Macro(other0)) => self0 == other0,
(TraitItem::Verbatim(self0), TraitItem::Verbatim(other0)) => {
TokenStreamHelper(self0) == TokenStreamHelper(other0)
}
_ => false,
}
}
}
#[cfg(feature = "full")]
impl Eq for TraitItemConst {}
#[cfg(feature = "full")]
impl PartialEq for TraitItemConst {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.ident == other.ident
&& self.ty == other.ty
&& self.default == other.default
}
}
#[cfg(feature = "full")]
impl Eq for TraitItemMacro {}
#[cfg(feature = "full")]
impl PartialEq for TraitItemMacro {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs && self.mac == other.mac && self.semi_token == other.semi_token
}
}
#[cfg(feature = "full")]
impl Eq for TraitItemMethod {}
#[cfg(feature = "full")]
impl PartialEq for TraitItemMethod {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.sig == other.sig
&& self.default == other.default
&& self.semi_token == other.semi_token
}
}
#[cfg(feature = "full")]
impl Eq for TraitItemType {}
#[cfg(feature = "full")]
impl PartialEq for TraitItemType {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.ident == other.ident
&& self.generics == other.generics
&& self.colon_token == other.colon_token
&& self.bounds == other.bounds
&& self.default == other.default
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for Type {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for Type {
fn eq(&self, other: &Self) -> bool {
match (self, other) {
(Type::Array(self0), Type::Array(other0)) => self0 == other0,
(Type::BareFn(self0), Type::BareFn(other0)) => self0 == other0,
(Type::Group(self0), Type::Group(other0)) => self0 == other0,
(Type::ImplTrait(self0), Type::ImplTrait(other0)) => self0 == other0,
(Type::Infer(self0), Type::Infer(other0)) => self0 == other0,
(Type::Macro(self0), Type::Macro(other0)) => self0 == other0,
(Type::Never(self0), Type::Never(other0)) => self0 == other0,
(Type::Paren(self0), Type::Paren(other0)) => self0 == other0,
(Type::Path(self0), Type::Path(other0)) => self0 == other0,
(Type::Ptr(self0), Type::Ptr(other0)) => self0 == other0,
(Type::Reference(self0), Type::Reference(other0)) => self0 == other0,
(Type::Slice(self0), Type::Slice(other0)) => self0 == other0,
(Type::TraitObject(self0), Type::TraitObject(other0)) => self0 == other0,
(Type::Tuple(self0), Type::Tuple(other0)) => self0 == other0,
(Type::Verbatim(self0), Type::Verbatim(other0)) => {
TokenStreamHelper(self0) == TokenStreamHelper(other0)
}
_ => false,
}
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for TypeArray {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for TypeArray {
fn eq(&self, other: &Self) -> bool {
self.elem == other.elem && self.len == other.len
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for TypeBareFn {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for TypeBareFn {
fn eq(&self, other: &Self) -> bool {
self.lifetimes == other.lifetimes
&& self.unsafety == other.unsafety
&& self.abi == other.abi
&& self.inputs == other.inputs
&& self.variadic == other.variadic
&& self.output == other.output
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for TypeGroup {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for TypeGroup {
fn eq(&self, other: &Self) -> bool {
self.elem == other.elem
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for TypeImplTrait {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for TypeImplTrait {
fn eq(&self, other: &Self) -> bool {
self.bounds == other.bounds
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for TypeInfer {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for TypeInfer {
fn eq(&self, _other: &Self) -> bool {
true
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for TypeMacro {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for TypeMacro {
fn eq(&self, other: &Self) -> bool {
self.mac == other.mac
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for TypeNever {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for TypeNever {
fn eq(&self, _other: &Self) -> bool {
true
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for TypeParam {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for TypeParam {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.ident == other.ident
&& self.colon_token == other.colon_token
&& self.bounds == other.bounds
&& self.eq_token == other.eq_token
&& self.default == other.default
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for TypeParamBound {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for TypeParamBound {
fn eq(&self, other: &Self) -> bool {
match (self, other) {
(TypeParamBound::Trait(self0), TypeParamBound::Trait(other0)) => self0 == other0,
(TypeParamBound::Lifetime(self0), TypeParamBound::Lifetime(other0)) => self0 == other0,
_ => false,
}
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for TypeParen {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for TypeParen {
fn eq(&self, other: &Self) -> bool {
self.elem == other.elem
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for TypePath {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for TypePath {
fn eq(&self, other: &Self) -> bool {
self.qself == other.qself && self.path == other.path
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for TypePtr {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for TypePtr {
fn eq(&self, other: &Self) -> bool {
self.const_token == other.const_token
&& self.mutability == other.mutability
&& self.elem == other.elem
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for TypeReference {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for TypeReference {
fn eq(&self, other: &Self) -> bool {
self.lifetime == other.lifetime
&& self.mutability == other.mutability
&& self.elem == other.elem
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for TypeSlice {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for TypeSlice {
fn eq(&self, other: &Self) -> bool {
self.elem == other.elem
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for TypeTraitObject {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for TypeTraitObject {
fn eq(&self, other: &Self) -> bool {
self.dyn_token == other.dyn_token && self.bounds == other.bounds
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for TypeTuple {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for TypeTuple {
fn eq(&self, other: &Self) -> bool {
self.elems == other.elems
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for UnOp {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for UnOp {
fn eq(&self, other: &Self) -> bool {
match (self, other) {
(UnOp::Deref(_), UnOp::Deref(_)) => true,
(UnOp::Not(_), UnOp::Not(_)) => true,
(UnOp::Neg(_), UnOp::Neg(_)) => true,
_ => false,
}
}
}
#[cfg(feature = "full")]
impl Eq for UseGlob {}
#[cfg(feature = "full")]
impl PartialEq for UseGlob {
fn eq(&self, _other: &Self) -> bool {
true
}
}
#[cfg(feature = "full")]
impl Eq for UseGroup {}
#[cfg(feature = "full")]
impl PartialEq for UseGroup {
fn eq(&self, other: &Self) -> bool {
self.items == other.items
}
}
#[cfg(feature = "full")]
impl Eq for UseName {}
#[cfg(feature = "full")]
impl PartialEq for UseName {
fn eq(&self, other: &Self) -> bool {
self.ident == other.ident
}
}
#[cfg(feature = "full")]
impl Eq for UsePath {}
#[cfg(feature = "full")]
impl PartialEq for UsePath {
fn eq(&self, other: &Self) -> bool {
self.ident == other.ident && self.tree == other.tree
}
}
#[cfg(feature = "full")]
impl Eq for UseRename {}
#[cfg(feature = "full")]
impl PartialEq for UseRename {
fn eq(&self, other: &Self) -> bool {
self.ident == other.ident && self.rename == other.rename
}
}
#[cfg(feature = "full")]
impl Eq for UseTree {}
#[cfg(feature = "full")]
impl PartialEq for UseTree {
fn eq(&self, other: &Self) -> bool {
match (self, other) {
(UseTree::Path(self0), UseTree::Path(other0)) => self0 == other0,
(UseTree::Name(self0), UseTree::Name(other0)) => self0 == other0,
(UseTree::Rename(self0), UseTree::Rename(other0)) => self0 == other0,
(UseTree::Glob(self0), UseTree::Glob(other0)) => self0 == other0,
(UseTree::Group(self0), UseTree::Group(other0)) => self0 == other0,
_ => false,
}
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for Variadic {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for Variadic {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for Variant {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for Variant {
fn eq(&self, other: &Self) -> bool {
self.attrs == other.attrs
&& self.ident == other.ident
&& self.fields == other.fields
&& self.discriminant == other.discriminant
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for VisCrate {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for VisCrate {
fn eq(&self, _other: &Self) -> bool {
true
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for VisPublic {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for VisPublic {
fn eq(&self, _other: &Self) -> bool {
true
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for VisRestricted {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for VisRestricted {
fn eq(&self, other: &Self) -> bool {
self.in_token == other.in_token && self.path == other.path
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for Visibility {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for Visibility {
fn eq(&self, other: &Self) -> bool {
match (self, other) {
(Visibility::Public(self0), Visibility::Public(other0)) => self0 == other0,
(Visibility::Crate(self0), Visibility::Crate(other0)) => self0 == other0,
(Visibility::Restricted(self0), Visibility::Restricted(other0)) => self0 == other0,
(Visibility::Inherited, Visibility::Inherited) => true,
_ => false,
}
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for WhereClause {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for WhereClause {
fn eq(&self, other: &Self) -> bool {
self.predicates == other.predicates
}
}
#[cfg(any(feature = "derive", feature = "full"))]
impl Eq for WherePredicate {}
#[cfg(any(feature = "derive", feature = "full"))]
impl PartialEq for WherePredicate {
fn eq(&self, other: &Self) -> bool {
match (self, other) {
(WherePredicate::Type(self0), WherePredicate::Type(other0)) => self0 == other0,
(WherePredicate::Lifetime(self0), WherePredicate::Lifetime(other0)) => self0 == other0,
(WherePredicate::Eq(self0), WherePredicate::Eq(other0)) => self0 == other0,
_ => false,
}
}
}