MyDemoBot
How the Zig-backed instance graph works (GraphView/NodeReference/EdgeReference), the real Python API surface, and the invariants around allocation, attributes, and cleanup.
Installation
Pick a client and clone the repository into its skills directory.
Installation
About this skill
How the Zig-backed instance graph works (GraphView/NodeReference/EdgeReference), the real Python API surface, and the invariants around allocation, attributes, and cleanup.
How to use
Zaimportuj GraphView z modułu faebryk.core.graph — to główny punkt wejścia do pracy z grafem. GraphView to widok na członkostwo i sąsiedztwo węzłów przechowywanych w Zig.
Utwórz instancję grafu za pomocą GraphView.create() — nigdy nie wywoływaj konstruktora bezpośrednio. Zwrócony obiekt GraphView zawiera areny, mapy i bitsets potrzebne do operacji na grafie.
Pracuj z węzłami i krawędziami poprzez NodeReference i EdgeReference — są to uchwyty wartościowe (UUID) wskazujące na globalny backing storage w Zig. Używaj metod fabrycznych takich jak NodeReference.create(**attrs) zamiast konstruktorów.
Pamiętaj o niezmiennikach: nie modyfikuj referencji bezpośrednio, nie obchodź alokacji, nie ignoruj czyszczenia. Węzły i krawędzie muszą być tworzone i usuwane poprzez GraphView.
Zawsze wywoływaj g.destroy() na koniec pracy — najlepiej w bloku finally, aby upewnić się, że zasoby Zig zostaną zwolnione nawet w przypadku wyjątku.
Jeśli budujesz system traversujący graf (np. compiler lub wizualizacja), używaj BoundNode i BoundEdge jako wrapperów — łączą referencję z wskaźnikiem do posiadającego GraphView, co ułatwia nawigację.