mirror of
https://github.com/rojo-rbx/rojo.git
synced 2026-04-20 12:45:05 +00:00
Properly support EnumItem variants in hashing and variant_eq (#1165)
This commit is contained in:
@@ -85,6 +85,10 @@ pub fn hash_variant(hasher: &mut Hasher, value: &Variant) {
|
||||
hash!(hasher, s.as_bytes())
|
||||
}
|
||||
Variant::Enum(e) => n_hash!(hasher, e.to_u32()),
|
||||
Variant::EnumItem(e) => {
|
||||
hash!(hasher, e.ty.as_bytes());
|
||||
n_hash!(hasher, e.value);
|
||||
}
|
||||
Variant::Faces(f) => hash!(hasher, &[f.bits()]),
|
||||
Variant::Float32(n) => n_hash!(hasher, round!(*n)),
|
||||
Variant::Float64(n) => n_hash!(hasher, round!(n)),
|
||||
|
||||
@@ -71,6 +71,7 @@ pub fn variant_eq(variant_a: &Variant, variant_b: &Variant) -> bool {
|
||||
(Variant::Content(a), Variant::Content(b)) => a == b,
|
||||
(Variant::ContentId(a), Variant::ContentId(b)) => a == b,
|
||||
(Variant::Enum(a), Variant::Enum(b)) => a == b,
|
||||
(Variant::EnumItem(a), Variant::EnumItem(b)) => a == b,
|
||||
(Variant::Faces(a), Variant::Faces(b)) => a == b,
|
||||
(Variant::Float32(a), Variant::Float32(b)) => approx_eq!(f32, *a, *b),
|
||||
(Variant::Float64(a), Variant::Float64(b)) => approx_eq!(f64, *a, *b),
|
||||
|
||||
Reference in New Issue
Block a user