A
async-io-model
Explanations of common asynchronous patterns used in tursodb. Involves IOResult, state machines, re-entrancy pitfalls, CompletionGroup. Always use these patterns in `core` when doing anything IO
Installation
Pick a client and clone the repository into its skills directory.
Installation
About this skill
Explanations of common asynchronous patterns used in tursodb. Involves IOResult, state machines, re-entrancy pitfalls, CompletionGroup. Always use these patterns in core when doing anything IO
How to use
- 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.