Hacker News Digest

21 октября 2026 г. в 19:11 • google.github.io • ⭐ 324 • 💬 194

Original • HN

#android#arc#chrome#format#fuchsia#google#panic#rc#rust#styleguide

Rust Style Guide

Google опубликовал руководство по стилю Rust — часть серии открытых стайлгайдов. Документ опирается на публичные правила оформления Rust и требует применять правила проектирования API с учётом контекста. Среди ключевых требований: предпочитать небольшие крейты, использовать плоскую структуру файлов для исходников rust_library, называть файлы и листовые модули по главному пользовательскому элементу, не реализовывать API в нелистовых модулях, избегать глобальных импортов через * и импортировать элементы одного модуля одним выражением use. Имена типов импортируются и используются без квалификации, а вызовы функций верхнего уровня — с именем модуля.

Отдельные разделы посвящены владению и заимствованию: рекомендуется избегать Rc и Arc, предпочитать заимствования глубоким копиям. Для входных и выходных параметров советуют принимать гибкие ссылки на неизменяемые данные, выбирать между итераторами и коллекциями осознанно, использовать Into, а также предпочитать enum вместо bool в API. Запрещён вызов panic::catch_unwind — исключение сделано лишь для защиты в глубину там, где код и так избегает паник, и только при panic=unwind; Chrome, Android и Fuchsia требуют panic=abort. Для конкатенации и подстановки строк предпочтительны format! и write! вместо + и str::replace. Тесты следует писать в рамках фреймворка конкретной кодовой базы: в Chrome — rust_gtest_interop, в Fuchsia — #[fuchsia::test].