Комментарии 5
Для полей единичного типа (()) такое предупреждение не будет генерироваться для облегчения миграции существующего кода без изменения индексов кортежа.
Кто-нибудь может объяснить мне эту часть? Получается, что если есть кортеж вида (u8, (), u16)
и "среднее" поле не используется, то предупреждения не будет?.. Но к чему тут "облегчения миграции существующего кода без изменения индексов кортежа"?
Ну вот у вас был кортеж вида (u8, u8, u16)
, и оказалось что второй элемент нигде не используется. Если вы его удалите и получите (u8, u16)
— вам придётся всюду переделывать обращение к третьему элементу на обращение ко второму. Поэтому предлагается использовать вариант (u8, (), u16)
, который столь же оптимален по памяти — но не требует переделывания обращений.
Теперь дошло, спасибо за объяснение!
Хотя я бы всё-таки поправил индексы, если это, конечно, не публичное апи, которое не хочется лишний раз ломать.
Rust 1.64.0: rust-analyzer в rustup, IntoFuture, ffi-типы в core и alloc, улучшения в Cargo