diff --git a/src/ecs/relation.rs b/src/ecs/relation.rs index 7dfb5a8..767ccc1 100644 --- a/src/ecs/relation.rs +++ b/src/ecs/relation.rs @@ -78,9 +78,13 @@ impl Relation { #[inline] #[must_use] pub fn from_bits(bits: u64) -> Option { - let kind = (bits >> 32) as u32; let target = bits as u32; + let high = (bits >> 32) as u32; + if let (kind, Flags::RELATION) = Flags::unpack(high)? { Self::new_checked(kind, target) + } else { + None + } } #[inline]