fix: Further improve `StructFieldEq`
Changes suggested by `martin-g`
diff --git a/avro/src/schema_equality.rs b/avro/src/schema_equality.rs
index 6763a3a..c14e5fb 100644
--- a/avro/src/schema_equality.rs
+++ b/avro/src/schema_equality.rs
@@ -140,17 +140,17 @@
}
(Schema::Union(_), _) => false,
(
- Schema::Decimal(DecimalSchema { precision: precision_one, scale: scale_one, ..}),
- Schema::Decimal(DecimalSchema { precision: precision_two, scale: scale_two, .. })
+ Schema::Decimal(DecimalSchema { precision: precision_one, scale: scale_one, inner: inner_one }),
+ Schema::Decimal(DecimalSchema { precision: precision_two, scale: scale_two, inner: inner_two })
) => {
- precision_one == precision_two && scale_one == scale_two
+ precision_one == precision_two && scale_one == scale_two && self.compare(inner_one, inner_two)
}
(Schema::Decimal(_), _) => false,
(
Schema::Array(ArraySchema { items: items_one, ..}),
Schema::Array(ArraySchema { items: items_two, ..})
) => {
- items_one == items_two
+ self.compare(items_one, items_two)
}
(Schema::Array(_), _) => false,
(
@@ -177,7 +177,7 @@
&& fields_one
.iter()
.zip(fields_two.iter())
- .all(|(f1, f2)| self.compare(&f1.schema, &f2.schema))
+ .all(|(f1, f2)| f1.name == f2.name && self.compare(&f1.schema, &f2.schema))
}
}