minimize-rust-ffi-crate-surface
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
About this skill
Remove Rust-defined C symbols that are either unused or only used in C/C++ unit tests.
How to use
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 dosrc/redisearch_rs/c_entrypoint/. Na przykładnumeric_range_tree_ffizostanie zmieniony nasrc/redisearch_rs/numeric_range_tree_ffi. Możesz podać jedną ścieżkę lub wiele plików/katalogów naraz.Uruchom skill z podaną ścieżką. Skill wykorzysta narzędzie
analyze-rust-ffi-crate-surfacedo przeskanowania wszystkich symboli FFI (funkcjiextern "C"z atrybutem#[unsafe(no_mangle)]oraz definicji typów) i określenia, które z nich są faktycznie używane.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.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".
Zastosuj wybrane zmiany w kodzie i ponownie uruchom pełny zestaw testów, aby upewnić się, że refaktoryzacja nie spowodowała regresji.
Zweryfikuj, że publiczny interfejs FFI jest teraz czystszy i zawiera tylko symbole rzeczywiście potrzebne dla produkcji.