check-bounds-safety
Bezpieczne sprawdzanie granic tablic i buforów dzięki typom zamiast surowych liczb
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
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ć
Zainstaluj skill w swoim katalogu
.claude/skills/poprzez sklonowanie repozytorium r3bl-org/r3bl-open-core lub skopiowanie folderucheck-bounds-safetydo projektu.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.
Zamiast pisać kod z surowymi wartościami
usize, użyj konstruktorów z bibliotekir3bl_tui:idx()dla indeksów (0-based),len()dla długości (1-based), oraz specjalizowane typy takie jakRowIndex,ColIndex,RowHeightiColWidth.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.Do sprawdzania wartości zerowych używaj metody
.is_zero()zamiast porównania== 0, co jest bardziej idiomatyczne i czytelne.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.