# Podpora Rustu v nástroji Maguyva: bezpečný kontext pro změny s asistencí AI

Canonical source: https://maguyva.ai/cs/languages/rust

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

Maguyva podporuje Rust díky AST parsování a extrakci symbolů, takže AI agenti dokážou procházet moduly, impl bloky, konstruktory a cesty závislostí ještě před úpravou přísného, na bezpečnost orientovaného kódu.

## Přehled podpory

- Úroveň: Podpora AST a symbolů
- Programování
- Přípony: .rs
- Skutečné parsování AST pro vyhledávání citlivé na syntaxi a strukturální kontext.
- Pojmenované symboly napájejí sémantické vyhledávání a křížové odkazy. Navigace v grafu je k dispozici, když je povolena extrakce vztahů.
- Tento jazyk přispívá symboly a vztahy do vyhledávání využívajícího graf; podporované typy hran se liší podle jeho nativních konstrukcí.
- K dispozici je parsování AST i extrakce symbolů.

## Nejlépe se hodí pro

- Systémové, platformní nebo CLI repozitáře, kde je Rust zvolen proto, že na korektnosti a bezpečnosti změn skutečně záleží.
- Týmy, které chtějí pomoc AI při zkoumání codebase v Rustu ještě před úpravou logiky citlivé na vlastnictví nebo nízkoúrovňové logiky.
- Repozitáře, kde moduly, generované typy, makra a okolní tooling znemožňují spolehlivé uvažování jen nad jedním souborem.

## Workflow agentů

- Vysledovat, kde se struct nebo komponenta vytváří, ještě před změnou jejího chování.
- Porovnat vzory modulů a tvary implementace místo vymýšlení nových.
- Najít cesty, které závisí na typu nebo helperu, dřív, než požádáte agenta o jeho refaktoring.

## Proč změny v Rustu potřebují víc než jen autocomplete

Rust je jedním z nejjasnějších případů, kdy by AI měla nejdřív procházet a teprve pak upravovat. Jazyk se obvykle volí proto, že záleží na korektnosti, ne proto, že tým chce víc spekulativně generovaných změn. Takže laťka pro „podporu Rustu“ by měla být vysoko: dokáže agent pochopit hranice modulů, impl bloky, konkrétní konstrukci typů a okolní kontext ještě před tím, než navrhne refaktoring?

Podle toho se pozná skutečný přínos. Generování syntaxe není ta zajímavá část.

## Co Maguyva v Rustu skutečně extrahuje

Maguyva zachycuje funkce a implementační bloky Rustu jako samostatné strukturální koncepty a zachází se struct výrazy jako se skutečnými instanciacemi. Díky tomu má graf užitečný pohled na to, kde se konkrétní typy vytvářejí, ne jen kde jsou pojmenované.

Konfigurace zároveň odfiltruje velké množství šumu z maker a standardní knihovny, což je v Rustu důležité, protože kód plný maker jinak dokáže zaplavit graf věcmi, které jsou technicky platná volání, ale při snaze pochopit chování repozitáře moc nepomůžou.

## Užitečné workflow MCP pro repozitáře v Rustu

Nejužitečnější výchozí vzory jsou:

- `find_symbol` pro struct, enum nebo funkci vlastněnou modulem, kterou se chystáte změnit.
- `dependency_search` dřív, než refaktorujete klíčový typ, abyste věděli, které cesty kódem na něm závisí.
- `get_task_context` pro konceptuální dotazy typu „vysledovat retry logiku kolem HTTP klienta“, když cesta prochází více moduly.

## Kde je tato stránka nejrelevantnější

Použijte tuto stránku, pokud chcete asistenci AI v Rustu, aniž byste se vzdali opatrného workflow, díky kterému se Rust vyplatí používat. Pokud je repozitář spíš servisně orientovaný než systémově orientovaný, bližším srovnáním je [Go](/cs/languages/go). Pokud je Rust jen jednou součástí většího prostředí, na popisu podpory více jazyků na [stránce o stacku](/cs/stack) záleží víc než na checklistu parseru.

## Podrobnosti enginu

- `impl_item` a `function_item` se zachytávají odděleně, což pomáhá rozlišit konkrétní funkce od impl bloků.
- Struct výrazy se počítají jako instanciace, takže graf umí sledovat, kde se typy skutečně konstruují.
- Makra a běžné konstruktory stdlib jsou agresivně filtrované, aby graf vztahů zůstal zaměřený na kód repozitáře.

## Užitečné vstupní body MCP

- `find_symbol`: Začněte strukturou, výčtovým typem nebo funkcí patřící do modulu, která vás zajímá, a pokračujte odtud.
- `dependency_search`: Použijte ho před úpravou core typu nebo modulu, abyste viděli příchozí použití, ne jen lokální reference.
- `get_task_context`: Užitečné, když je úkol konceptuální, například sledování retry logiky nebo životních cyklů zdrojů napříč moduly.
