Язык системного программирования Rust был снова обновлен, чтобы добавить поддержку связанных констант. Также были улучшены характеристики груза.
Rust изначально спонсировался Mozilla и был разработан, чтобы быть безопасным, быстрым и параллельным без сборщика мусора. Предполагаемое использование включает в себя встраивание в другие языки, написание программ с определенными требованиями к пространству и времени, а также написание кода низкого уровня, например драйверов устройств и операционных систем.
Поддержка связанных констант дополняет существующую поддержку связанных функций Rust. Они могут быть связаны с признаками, структурами и перечислениями. Связанная функция-это функция, связанная с самим типом, а не с каким-либо конкретным экземпляром.
Rust 1.20 также добавляет возможность определять “связанные константы”, поэтому у вас может быть такой код:
структура Структура;
импл-структура {
идентификатор const: u32 = 0;
}
fn основной() {
принтлн!(«ИДЕНТИФИКАТОР структуры: {}», Struct::ID);
}
который связывает идентификатор константы со структурой.
Черты также могут иметь связанные константы, и те, которые связаны с чертами, обладают дополнительной силой. С помощью признака вы можете использовать связанную константу так же, как вы использовали бы связанный тип: объявив ее, но не придав ей значения. Затем исполнитель признака объявляет его значение при реализации.
Cargo, менеджер пакетов Rust, также был обновлен. Первое изменение означает, что crates.io секретный маркер аутентификации был перемещен в место, которое означает, что ему может быть присвоен уровень разрешений, означающий, что он скрыт от других пользователей в вашей системе. До этого он хранился в файле конфигурации, то есть обычно хранился с уровнем разрешений, означающим, что он был доступен для чтения во всем мире.
В других местах в Cargo способ хранения вторичных двоичных файлов означает, что вы можете хранить большие двоичные файлы более отдельно друг от друга.