Все unwap() там, потому что None в том месте было б логической ошибкой и такое должно тестится юнит тестами (правда я юнит тесты не завез). Та же самая хуйня и с паникой (кроме случаев с методом insert). Нахуя такое говорить, не разобравшись в коде?
А кто сказал, что я не разобрался? Всегда есть варианты эффективнее анвряпа. Если хочешь ансейфа на полшишечки, то if let Some(v) = foo { v } else { unsafe { std::hint::unreachable_unchecked() } }, а если не хочешь в ансейф, то есть вариант возвращать некий дефолт.
balance factor по определению не может быть < -2 або > 2. Тут ЛОГИЧЕСКАЯ ошибка. Никакого дефолта тут не может быть! Тут только паника, потому что дерево вышло из подконтроля
Визначити внутрішню енергію кисню масою m при температурі t, яка припадає на обертальну форму руху. Результат подати у кілоджоулях (1 кДж = 103 Дж).
Определить внутреннюю энергию кислорода массой m при температуре t, приходящаяся на вращающуюся форму движения. Результат представить в килоджоулях (1 кДж = 10^3 Дж).
Ну вот смотри, указатель на панику обычно занимает usize места, в том месте, где он записан, потому что указатель на cold функцию, плюс ещё какое-то место в бинарнике, плюс неоптимизируемые LLVM'ом бранчи в этом месте. А просто вернуть какой-нибудь дефолтный вариант Enum'а - один байт, плюс оптимизация LLVM'а, если красиво встанет.