(&self, state: &mut H)
| 354 | |
| 355 | impl Hash for Row { |
| 356 | fn hash<H: Hasher>(&self, state: &mut H) { |
| 357 | // For set operations, hash positionally if available |
| 358 | if !self.positional_values.is_empty() { |
| 359 | self.positional_values.hash(state); |
| 360 | } else { |
| 361 | // Fallback to named hashing for backward compatibility |
| 362 | let mut items: Vec<_> = self.values.iter().collect(); |
| 363 | items.sort_by_key(|(k, _)| *k); |
| 364 | for (key, value) in items { |
| 365 | key.hash(state); |
| 366 | value.hash(state); |
| 367 | } |
| 368 | } |
| 369 | } |
| 370 | } |
no test coverage detected