Toolverse
Wszystkie skille

check-bounds-safety

autor: r3bl-org

Bezpieczne sprawdzanie granic tablic i buforów dzięki typom zamiast surowych liczb

Instalacja

Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.

Instalacja

Szybkie info

Kategoria
Backend

O skillu

Skill do Claude'a, który uczy bezpiecznych wzorców sprawdzania granic przy pracy z tablicami, buforami, kursorami i viewportami. Zamiast używać surowych wartości usize, które łatwo prowadzą do błędów typu off-by-one, nauczysz się rozróżniać indeksy (0-based) od długości (1-based) za pomocą dedykowanych typów. System typów Rusta będzie Cię chronić przed porównywaniem niezgodnych wartości, na przykład indeksu wiersza z szerokością kolumny. Idealny do implementacji logiki pozycjonowania kursora w edytorach tekstu, obsługi renderowania widoków, konwersji zakresów VT-100 na zakresy Rusta i walidacji granic zakresu.

Jak używać

  1. Zainstaluj skill w swoim katalogu .claude/skills/ poprzez sklonowanie repozytorium r3bl-org/r3bl-open-core lub skopiowanie folderu check-bounds-safety do projektu.

  2. Gdy pracujesz z kodem zawierającym dostęp do tablic, buforów lub logikę pozycjonowania kursora, poproś Claude'a o zastosowanie tego skilla. Wspomni o "sprawdzaniu granic", "bezpieczeństwie typów" lub "błędach off-by-one", aby aktywować wskazówki.

  3. Zamiast pisać kod z surowymi wartościami usize, użyj konstruktorów z biblioteki r3bl_tui: idx() dla indeksów (0-based), len() dla długości (1-based), oraz specjalizowane typy takie jak RowIndex, ColIndex, RowHeight i ColWidth.

  4. Zastosuj metody bezpiecznego porównania dostarczone przez skill, na przykład .overflows() do sprawdzenia, czy indeks przekracza długość. Unikaj surowych operatorów porównania między różnymi typami — kompilator Rusta będzie Cię chronić przed błędami kategorii.

  5. Do sprawdzania wartości zerowych używaj metody .is_zero() zamiast porównania == 0, co jest bardziej idiomatyczne i czytelne.

  6. Przed commitowaniem kodu wrażliwego na granice poproś Claude'a o przegląd, aby upewnić się, że wszystkie indeksy i długości są poprawnie typowane i porównywane.

Podobne skille