К основному содержанию
скилл CX Codex

m04-zero-cost — скилл для Claude Code: дженерики и трейты в Rust

Разбирает ошибки E0277, E0308 и E0599 и помогает выбрать между дженериками и dyn Trait. Пригодится, когда компилятор Rust упирается в трейт-баунды.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add actionbook/rust-skills --skill m04-zero-cost -a claude-code
Открыть на GitHub

Что делает m04-zero-cost

Скилл ведёт от ошибки к вопросу о дизайне. Вместо «добавь трейт-баунд» он спрашивает, на правильном ли уровне абстракция: одинаковое поведение у разных типов — трейт, разное поведение у одного типа — enum, абстракция не нужна — конкретный тип. Таблица ошибок покрывает E0277, E0308, E0599 и E0038.

Дальше идёт выбор между статической и динамической диспетчеризацией. Тип известен на этапе компиляции — дженерики или impl Trait, известен в рантайме — dyn Trait. Есть сравнение синтаксиса в позиции аргумента и возврата, таблица стоимости: у дженериков нулевые накладные расходы, но растёт размер кода, у dyn — поиск по vtable и аллокация для Box.

Отдельный блок про object safety: трейт остаётся объектно-безопасным, если не требует Self: Sized, не возвращает Self и не имеет generic-методов. Есть разбор антипаттернов — например, dyn там, где тип известен заранее. Скилл ссылается на соседние модули набора: m05-type-driven, m09-domain, m10-performance, m07-concurrency. Он не вызывается вручную: user-invocable: false, поэтому срабатывает, когда агент видит подходящий код или ошибку компилятора.

Какие задачи решает

  • разобрать E0277 и понять, где ошибся с трейт-баундом
  • выбрать между дженериками и dyn Trait для плагинной архитектуры
  • собрать коллекцию разнотипных значений через Vec<Box<dyn Trait>>
  • проверить трейт на object safety перед переходом на динамическую диспетчеризацию
  • сократить время компиляции, убрав лишнюю мономорфизацию

Примеры запросов агенту

  • у меня E0277 на трейт-баунде, разбери, правильная ли это абстракция
  • нужна плагинная архитектура на Rust: дженерики или dyn Trait?
  • трейт не проходит по object safety, что переделать

Как установить m04-zero-cost

1Через Skills CLI (Vercel)

npx skills add actionbook/rust-skills --skill m04-zero-cost -a claude-code

2Вручную: положить файлы

~/.claude/skills/m04-zero-cost/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/m04-zero-cost/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о m04-zero-cost

Как установить m04-zero-cost в Claude?

Выполните npx skills add actionbook/rust-skills --skill m04-zero-cost -a claude-code. Скилл окажется в ~/.claude/skills/m04-zero-cost/SKILL.md.

Что делает m04-zero-cost?

Помогает выбирать между статической и динамической диспетчеризацией в Rust и разбирает ошибки трейт-баундов. Работает как справочник по дженерикам, impl Trait и dyn Trait.

Можно вызвать этот скилл вручную?

Нет, во фронтматтере стоит user-invocable: false. Агент подключает его сам, когда в коде появляются дженерики, трейты или соответствующие ошибки компилятора.

Похожие скиллы

Все скиллы по теме «Языки программирования» →
typescript gentleman-programming Скилл задаёт агенту правила строгого TypeScript: const-объекты вместо union-типов, плоские интерфейсы, отказ от any. Пригодится, когда код пишет ИИ и хочется единый стиль. CX Codex +1 496установок zig-comptime mohitmishra786 Скилл для агентов, который помогает писать обобщённые функции, рефлексию типов и код, вычисляемый на этапе компиляции в Zig. CX Codex +1 443установок typescript-advanced-types Seth Hobson Помогает агенту писать сложную типизацию TypeScript: generics, conditional types и преобразования типов. Нужен для библиотек, API-клиентов и строгих конфигураций. CX Codex 92 169установок golang-data-structures samber Помогает выбирать структуры данных Go и разбираться в устройстве слайсов, map и контейнеров. Пригодится при проектировании обобщённых коллекций и работе с указателями. CX Codex +1 40 300установок golang-samber-lo samber Скилл добавляет в Claude Code знание о samber/lo — библиотеке с 500+ типобезопасными функциями для работы со срезами, картами и каналами в Go. Помогает писать функциональный код без ручных циклов и боilerplate. CX Codex +1 38 500установок typescript-pro https://github.com/Jeffallan Настраивает строгую типизацию TypeScript, генерирует брендированные типы и связывает tRPC. Пригодится при проектировании надёжных API и сложных generic-структур. CX Codex +1 14 200установок

Из того же набора33

m06-error-handling Помогает ИИ-агенту выбирать правильный способ обработки ошибок в Rust. Пригодится, когда нужно решить между Result, Option, panic!, thiserror и anyhow. CX Codex +1 3 500установок m07-concurrency Помогает разбирать конкурентный и асинхронный Rust-код: выбрать потоки, async/await, каналы или синхронизацию. Нужен при ошибках Send/Sync, дедлоках и гонках. CX Codex +1 3 500установок m02-resource Помогает ассистенту выбирать подходящие умные указатели в Rust и организовывать владение ресурсами. Пригодится при проектировании структур данных и устранении утечек памяти. CX Codex +1 3 400установок m05-type-driven Скилл помогает проектировать Rust-типы так, чтобы некорректные состояния ловились компилятором. Пригодится для newtype, type state и безопасных builder API. CX Codex +1 3 400установок m01-ownership Помогает ИИ-агенту разбирать ошибки владения и времени жизни в Rust без беспорядочной расстановки .clone() в коде. CX Codex +1 3 400установок m11-ecosystem Помогает ИИ подбирать библиотеки под Rust, настраивать Cargo.toml и связывать код с C, Python или WebAssembly. Подходит при разборе ошибок компилятора. CX Codex +1 3 300установок m13-domain-error Скилл помогает проектировать иерархию доменных ошибок, правила восстановления и контекст для диагностики. Нужен при разработке Rust-кода с retry и fallback. CX Codex +1 3 300установок m14-mental-model Скилл объясняет владение, заимствование и времена жизни в Rust через аналогии и разбор типичных ошибок компилятора. Пригодится, когда непонятно, почему код не собирается. CX Codex +1 3 300установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой