Skip to main content

style

Always use this skill before writing or editing Rust code or documentation in the Topcoat repository

Ir para a instalação

Informações da origem

Repositório
tokio-rs/topcoat
Última atividade na origem
18 de setembro de 2026 às 16:08
Idioma detectado do SKILL.md
inglês
Estrelas
4.871
Forks
177

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
style
description
Always use this skill before writing or editing Rust code or documentation in the Topcoat repository
# Code Style ## General * Keep related code together: a struct is immediately followed by its inherent `impl` and then its trait impls, before the next struct in the file. Unit tests (`#[cfg(test)] mod tests`) go at the very bottom of the file. * Free functions are allowed, but first consider whether a more idiomatic Rust grouping onto a struct exists. * Unsafe code is not allowed in this project, unless wrapped by a reputable dependency. * Avoid needless allocations, it is reasonable to refactor the code a bit to make it faster. * After adding a new feature, check if it makes sense to rewrite unit tests for the entire module instead of adding a few. When rewriting, make sure to keep all tested edge cases intact. ## Barrel files Name a module's file after the module and place it alongside its directory (`foo.rs` next to `foo/`), never `foo/mod.rs`. A barrel file declares all submodules and re-exports each with a glob; only third-party items are re-exported by name. ```rust mod content; mod error; mod request; pub use content::*; pub use error::*; pub use request::*; pub use http::Method; ``` When a module's submodules are peers that make up a whole (the CLI commands `fmt`, `dev`, `asset`; the macros `expr`, `procedure`, `shard`), put anything shared between them in a `common` submodule so it does not read as another peer. ## Dependencies * Declare every dependency in the top-level `Cargo.toml` under `[workspace.dependencies]` with only a version and no features. Crates pull it in with `workspace = true` and opt into features there. ## Documentation * Write in plain english. No fancy sentence structure. * Item docs describe what something is/does and how to use it. Avoid implementation details unless relevant to a caller. * Describe the current state only; never reference previous iterations ("this used to be A but is now B"). * Avoid exhaustively listig specific implementations or uses that could evolve over time and go stale. Keep documentation robust to changes. * Avoid mentioning unrelated items, like "this is used by X to do Y". Focus on describing only the item itself. * Use only ASCII characters in both code and documentation, e.g. `->` instead of unicode arrow or `...` instead of ellipsis character. * Avoid em-dashes entirely. Use colons and semicolons sparingly. * Avoid using `ignore` for code snippets to keep them type-checked.
Ver no GitHub