Przejdź do treści
Biblioteka skilli
Programowanie · Pisanie

documenting-rust-code

/documenting-rust-code

Opisuje praktyki dokumentowania kodu Rust w repozytorium HASH: komentarze dokumentacyjne funkcji, typów, traitów i modułów, sekcje błędów, linki intra-doc i konwencje rustdoc.

Repozytorium
hash ↗
Licencja
MIT
Ostatnia zmiana repozytorium
24.10.2026

Ocena i bezpieczeństwo

100/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
5
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
0
Przestarzałość

Brak sygnałów. Repozytorium zmienione 24.10.2026, bez odwołań do wycofanych modeli i API.

Licencja

MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.

Co robi i kiedy

Opisuje praktyki dokumentowania kodu Rust w repozytorium HASH: komentarze dokumentacyjne funkcji, typów, traitów i modułów, sekcje błędów, linki intra-doc i konwencje rustdoc.

Oryginalny opis (EN)

Rust documentation practices for HASH codebase. Use when writing doc comments, documenting functions/types/traits/modules, creating error sections, using intra-doc links, or following rustdoc conventions.

Jak działa

  1. Core Principles
  2. Quick Reference
  3. Documentation Patterns
  4. Verification
  5. References
Sekcje z nagłówków SKILL.md, w oryginale · 138 linii, 461 słów
Podgląd SKILL.md
---
name: documenting-rust-code
description: Rust documentation practices for HASH codebase. Use when writing doc comments, documenting functions/types/traits/modules, creating error sections, using intra-doc links, or following rustdoc conventions.
license: AGPL-3.0
---

# Rust Documentation Practices

Comprehensive guidance on documenting Rust code in the HASH repository following rustdoc conventions.

## Core Principles

**Follow high-quality standards like `time`, `jiff`, and `serde`:**

✅ **DO:**

- Begin every doc comment with single-line summary
- Use intra-doc links for all type references
- Document all error conditions with `# Errors`
- Include practical examples for public APIs
- Link standard library types: [`Vec`], [`HashMap`], etc.
- Use inline parameter descriptions for simple functions (0-2 params)
- Describe return values in main text, not separate sections

❌ **DON'T:**

- Document standard trait implementations (`Debug`, `Display`, `From`)
- Add separate `# Returns` sections (inline instead)
- Mention variable types already in signatures
- Use comments on same line as code
- Skip error documentation for fallible functions

## Quick Reference

### Basic Doc Comment

```rust
/// Retrieves an entity by its UUID.
///
/// Loads the entity from the store and verifies access permissions.
/// Returns the [`Entity`] if found and accessible.
///
/// # Errors
///
/// - [`NotFound`] if the entity doesn't exist
/// - [`AuthorizationError`] if access is denied
///
/// [`NotFound`]: EntityError::NotFound
/// [`AuthorizationError`]: EntityError::Authorization
pub fn get_entity(&self, id: EntityId) -> Result<Entity, Report<EntityError>> {
```

### Intra-Doc Links

```rust
/// Updates the [`User`] using [`UserUpdateStrategy`].
///
/// See [`validation::user`] for validation rules.
///
/// [`validation::user`]: crate::validation::user
```

## Documentation Patterns

### Simple Functions (0-2 params)

Describe parameters inline:

```rust
/// Processes the `input` elements and returns filtered results.
///
/// Takes a collection of `input` elements, applies the `filter_fn`,
/// and returns a [`Vec`] containing only matching elements.
```

### Complex Functions (3+ params)

Use explicit `# Arguments` section:

```rust
/// Merges multiple data sources with transformation rules.
///
/// # Arguments
///
/// * `sources` - Collection of data sources to merge
/// * `rules` - Transformation rules to apply
/// * `options` - Configuration controlling merge behavior
/// * `callback` - Optional function for each merged item
```

### Error Documentation

```rust
/// # Errors
///
/// - [`WebAlreadyExists`] if web ID is taken
/// - [`AuthorizationError`] if permission denied
///
/// [`WebAlreadyExists`]: WebError::WebAlreadyExists
/// [`AuthorizationError`]: WebError::Authorization
```

### Module Documentation

````rust
//! Entity management functionality.
//!
//! Main types:
//! - [`Entity`] - Core entity type
//! - [`EntityStore`] - Storage trait
//!
//! # Examples
//!
//! ```
//! use hash_graph::entity::Entity;
//! ```
````

### Examples with Error Handling

````rust
/// # Examples
///
/// ```rust
/// let entities = get_entities_by_type(type_id)?;
/// assert_eq!(entities.len(), 2);
/// # Ok::<(), Box<dyn core::error::Error>>(())
/// ```
````

## Verification

```bash
cargo doc --no-deps --all-features
```

## References

- **[references/function-documentation.md](references/function-documentation.md)**: Functions and methods documentation patterns
- **[references/type-documentation.md](references/type-documentation.md)**: Types, structs, enums, and traits documentation
- **[references/error-documentation.md](references/error-documentation.md)**: Error conditions and panics documentation
- **[references/examples-and-links.md](references/examples-and-links.md)**: Examples and intra-doc links usage
Pliki w paczce (5)
  • SKILL.md 4 KB
  • references/error-documentation.md 5 KB
  • references/examples-and-links.md 7 KB
  • references/function-documentation.md 7 KB
  • references/type-documentation.md 5 KB

Wersje

W bazie nie ma innych skilli o nazwie documenting-rust-code.

Migawka bazy z 28.10.2026 · wersja paczki 0d624ab6a9de (skrót SHA-256 całej paczki)

Pobrania w ostatnich 30 dniach: 0 · ranking

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 100rust-documentation
    Projektuje, buduje i publikuje dokumentację Rust: rustdoc, mdBook, doctesty, linki, metadane docs.rs i kontrolę dokumentacji w CI.
  • 100rust-docs
    Pisze komentarze rustdoc jako kontrakt API: pierwsze zdanie, sekcje Examples, Errors, Panics i Safety oraz działające doctesty.
  • 100doc-comments
    Pomaga pisać i edytować komentarze Rust w Biome, w tym rustdoc dla użytkowników końcowych w deklaracjach reguł lint i assist.
  • 100rust-coding-style
    Opisuje styl kodowania Rust w HASH: dobór typów, importy, argumenty funkcji i nazewnictwo, przy pisaniu i przeglądzie kodu.
  • 95rust-best-practices
    Pisze, przegląda i refaktoryzuje idiomatyczny Rust: crate'y, błędy, async, unsafe, FFI, testy i dokumentację rustdoc.
  • 100rust-development
    Rozwija, przegląda i bada kod Rust zgodnie z Pragmatic Rust Guidelines: architekturę, implementację i dokumentację rustdoc.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.