Здесь Rust assert_eq!
макро-реализация. Для краткости я скопировал только первую ветку:
macro_rules! assert_eq {
($left:expr, $right:expr) => ({
match (&$left, &$right) {
(left_val, right_val) => {
if !(*left_val == *right_val) {
panic!(r#"assertion failed: '(left == right)'
left: '{:?}',
right: '{:?}'"#, left_val, right_val)
}
}
}
});
}
Какова цель match
здесь? Почему не проверяется недостаточно для равенства?