A
async-io-model
Wzorce asynchroniczne dla Turso — IOResult, maszyny stanów i CompletionGroup do bezpiecznej obsługi operacji I/O.
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
O skillu
Skill Claude'a wyjaśniający asynchroniczne wzorce używane w Turso. Zamiast async/await Rust, Turso stosuje jawne maszyny stanów ze współbieżnym yieldem. Nauczysz się pracować z IOResult (enum zwracający Done lub IO), Completion (śledzenie pojedynczych operacji I/O) i CompletionGroup (agregacja wielu operacji). Skill obejmuje makra pomocnicze return_if_io! i io_yield_one!, obsługę re-entrancy oraz zagnieżdżanie grup completionów. Stosuj te wzorce zawsze, gdy piszesz kod I/O w core Turso.
Jak używać
- Zainstaluj skill async-io-model z repozytorium tursodatabase w swoim środowisku Claude'a lub Copilota — skill zawiera dokumentację wzorców asynchronicznych używanych w Turso.
- Zapoznaj się z typami IOResult
i Completion — IOResult zwraca Done(T) gdy operacja się skończy lub IO(IOCompletions) gdy trzeba czekać na I/O, a Completion śledzi stan pojedynczej operacji I/O z metodami finished(), succeeded() i get_error(). - Używaj CompletionGroup do agregacji wielu operacji I/O — utwórz grupę, dodaj do niej completiony za pomocą add(), zbuduj połączoną operację metodą build() i yieldzuj ją makrem io_yield_one!().
- Stosuj makro return_if_io!() w funkcjach zwracających IOResult — automatycznie rozpropaguje wariant IO w górę stosu wywołań i pozwoli ci pracować tylko z Done.
- Strukturyzuj operacje I/O jako jawne maszyny stanów — definiuj enum dla stanów operacji i wielokrotnie wywoływaj funkcję aż zwróci Done zamiast IO.
- Pamiętaj o możliwości zagnieżdżania grup — możesz dodać completion z jednej grupy do drugiej grupy, oraz anulować grupy metodą cancel() jeśli trzeba przerwać operacje.