Комментарии 2
описывающий сборку 1+ крейтов
странный способ сказать "из нескольких". Если вы пытались сократить размер статьи. то вышло так себе.
это дерево модулей, где бинарный крейт является исполняемым файлом, а библиотечный крейт компилируется в библиотеку
крейты - это юниты трансляции кода, которые в зависимости от его типа могут быть статтической/динамической библиотекой, так и частью исполняемого бинарника.
модули определяют организацию и область видимости кода
за область видимости кода отвечают модификаторы доступа, а не модули. модули отвечают только за организацию API.
"внутренних комментариев документа".
что простите? это вы так docstring перевели?
родители и сиблинги
почему не паренты, тогда?
продвинутые спецификаторы pub
а самый сок в статью не добавили.
Интеграционные тесты
По-умолчанию есть только юнит тесты, то бишь когда пишутся тесты на какие-то отдельные функции. Их можно использовать для написания интеграционных тестов, но это явно не их дефолтное назначение.
Блоки кода в комментариях
///
считаются валидным кодомRust
Они не считаются валидным кодом, если их нельзя скомпилировать.
понадобится std::mem::transmute
стоит сделать ремарку, что по-умолчанию порядок полей в структурах не гарантируется, поэтому если хочется нормально кастить память из байтов в сложные типы, то не забывать указывать #[repr(C)]
у таких структур, чтобы не получать внезапную кашу.
Практическое руководство по Rust. 4/4