Toolverse
All skills

async-io-model

by tursodatabase

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

Quick info

Category
Backend

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

  1. 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.
  2. 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().
  3. 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!().
  4. 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.
  5. 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.
  6. 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.

Related skills