Равные keys обязаны иметь равный hash
HashMap сначала сужает кандидатов по hash, затем проверяет equality. Коллизии допустимы, но если два key равны, Hash обязан подать одинаковые байты в одинаковом порядке.
rust / УРОВЕНЬ 3
ТЕОРИЯ / ВОСПРОИЗВЕДЕНИЕ
HashMap сначала сужает кандидатов по hash, затем проверяет equality. Коллизии допустимы, но если два key равны, Hash обязан подать одинаковые байты в одинаковом порядке.
Поля Hash/Eq нельзя менять, пока key находится в map. Здесь политика явная: tenant id точен, email сравнивается без учёта регистра ASCII; полная Unicode normalization не обещана.
КОНТРОЛЬНАЯ ТОЧКА
Выберите все подходящие варианты. Ответ засчитывается только при точном совпадении набора.
02 / РЕВЬЮ КОДА
Исправьте `UserKey::hash` под существующее ASCII case-insensitive equality. Сохраните tenant separation, не выделяйте normalized String и не заменяйте map operations на scan.
Runner ждёт отправки кода.