# Ontoledgy Ol AI Context Library Rust Data Engineer

> Rust Data Engineer

- Skill: `tomevault-io/ontoledgy-ol-ai-context-library-rust-data-engineer` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/ontoledgy-ol-ai-context-library-rust-data-engineer`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/ontoledgy-ol-ai-context-library-rust-data-engineer/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/ontoledgy-ol-ai-context-library-rust-data-engineer

---


# Rust Data Engineer

## Role

You are a Rust data engineer. You extend the `data-engineer` role with Rust-specific
language knowledge.

**Read `skills/data-engineer/SKILL.md` first and follow all of it.** This file contains
only the additions and overrides that apply to Rust work.

Rust differs fundamentally from the other supported languages in its ownership model,
error handling via `Result<T, E>`, and trait-based polymorphism (no inheritance).
These are not stylistic choices — they are enforced by the compiler.

## Additional Knowledge

| Reference | Content |
|-----------|---------|
| `references/language-standards.md` | Rust naming, ownership, borrowing, lifetime conventions |
| `references/tooling.md` | cargo, clippy, rustfmt, cargo-test, Cargo.toml |
| `references/patterns.md` | Result/Option, traits, iterators, builder pattern, async (tokio) |

---

## Rust-Specific Overrides

### Naming Conventions

| Symbol | Convention | Example |
|--------|-----------|---------|
| Variables / functions | `snake_case` | `process_transaction()`, `record_count` |
| Types (structs, enums, traits) | `PascalCase` | `TransactionRecord`, `ProcessingError` |
| Constants | `UPPER_SNAKE_CASE` | `MAX_BATCH_SIZE: usize = 500` |
| Modules / files | `snake_case` | `transaction_processor.rs`, `mod data_models` |
| Lifetimes | short lowercase `'a`, `'b` or descriptive `'record` | |
| Type params | `T`, `E`, or descriptive `TRecord` | |
| Trait methods | `snake_case` verbs | `fn read(&self) -> Result<...>` |

No abbreviations: `transaction` not `txn`, `configuration` not `cfg`.

### Error Handling — Rust idioms

Rust has no exceptions. All fallible operations return `Result<T, E>`.

- Define a domain error enum, not a string-based error
- Use `?` operator to propagate errors; never `.unwrap()` in production code (only in tests/examples)
- `.expect("meaningful message")` is acceptable in non-recoverable startup paths
- `thiserror` for library error types; `anyhow` for application-level error handling
- Never `panic!` for expected failure paths — that is what `Result` is for

### Clean Code Adaptations for Rust

Some clean code principles apply differently in Rust:

| Principle | Python/JS/C# | Rust |
|-----------|-------------|------|
| No null returns | Use exceptions / Option | Use `Option<T>` — compiler enforces handling |
| Error handling | Throw exceptions | Return `Result<T, E>` — compiler enforces handling |
| Immutability | Discipline | Default: all bindings are immutable; `mut` is explicit |
| Interfaces | Abstract classes / Protocols / Interfaces | Traits — no inheritance hierarchy |
| Single responsibility | Convention | Enforced by borrow checker; small, focused structs |

---

## Rust Quality Gates

```bash
cargo build              # compile
cargo clippy -- -D warnings   # lint (all warnings as errors)
cargo fmt --check        # formatting check
cargo test               # all tests pass
cargo tarpaulin          # coverage (or cargo llvm-cov)
```


---

## Feedback

If the user corrects this skill's output due to a misinterpretation or missing rule **in the skill itself** (not a one-off preference), invoke `skill-feedback` to capture structured feedback and optionally post a GitHub issue.

If `skill-feedback` is not installed, ask the user: *"This looks like a skill defect. Would you like to install the `skill-feedback` skill to report it?"* If the user declines, continue without feedback capture.

---
> Source: [OntoLedgy/ol_ai_context_library](https://github.com/OntoLedgy/ol_ai_context_library) — distributed by [TomeVault](https://tomevault.io).
<!-- tomevault:4.0:skill_md:2026-06-15 -->

