Toolverse
All skills

minimize-rust-ffi-crate-surface

by RediSearch

Remove Rust-defined C symbols that are either unused or only used in C/C++ unit tests.

Installation

Pick a client and clone the repository into its skills directory.

Installation

Quick info

Category
Testing

About this skill

Remove Rust-defined C symbols that are either unused or only used in C/C++ unit tests.

How to use

  1. Przygotuj ścieżkę do Rust crate'u lub pliku, który chcesz wyczyścić. Jeśli ścieżka nie zaczyna się od src/, zostanie automatycznie rozszerzana do src/redisearch_rs/c_entrypoint/. Na przykład numeric_range_tree_ffi zostanie zmieniony na src/redisearch_rs/numeric_range_tree_ffi. Możesz podać jedną ścieżkę lub wiele plików/katalogów naraz.

  2. Uruchom skill z podaną ścieżką. Skill wykorzysta narzędzie analyze-rust-ffi-crate-surface do przeskanowania wszystkich symboli FFI (funkcji extern "C" z atrybutem #[unsafe(no_mangle)] oraz definicji typów) i określenia, które z nich są faktycznie używane.

  3. Dla każdego symbolu oznaczonego jako nieużywany: usuń jego definicję z kodu Rust, a następnie uruchom testy jednostkowe C/C++ poleceniem ./build.sh RUN_UNIT_TESTS, aby potwierdzić, że symbol rzeczywiście nie był potrzebny.

  4. Dla symboli, które są używane wyłącznie w testach C/C++, opracuj plan działania. Możesz wybrać jedną z trzech opcji: refaktoryzuj testy, aby nie korzystały z symbolu; usuń testy lub asercje, które polegają na szczegółach implementacji; lub zachowaj symbol, ale oznacz go jako "test only".

  5. Zastosuj wybrane zmiany w kodzie i ponownie uruchom pełny zestaw testów, aby upewnić się, że refaktoryzacja nie spowodowała regresji.

  6. Zweryfikuj, że publiczny interfejs FFI jest teraz czystszy i zawiera tylko symbole rzeczywiście potrzebne dla produkcji.

Related skills