Skip to content

v1.5.0 - Graphs, Dictionaries & Debugger Visualizers

Latest

Choose a tag to compare

@FurkanKirat FurkanKirat released this 18 Dec 18:07

This release brings back the highly requested SfDictionary, introduces the foundation for SfGraph, and massively improves the debugging experience with custom visualizers for all collections.

🚀 New Features

  • SfDictionary is Back!

    • Re-architected from scratch using open addressing.
    • Zero-Allocation: No garbage generation on lookups or insertions (when capacity allows).
    • Optimized for high-performance caching scenarios.
  • 🕸️ SfGraph (Core Structure)

    • Added SfGraph<T> implementation based on Adjacency Lists.
    • Supports AddVertex, AddEdge, GetNeighbors and standard graph traversals.
    • Note: Pathfinding algorithms (A*, BFS, DFS) are scheduled for the v1.6.0 update.
  • 🔍 Debugger Visualizers (Major DX Update)

    • Added DebuggerTypeProxy and DebuggerDisplay attributes to ALL collections.
    • You can now inspect the contents of SfBitArray, SfGraph, SfDictionary, and SfGrid directly in Visual Studio without expanding complex internal arrays.
    • SfBitArray3D now shows dimensions and active voxel counts clearly.
    • SfGraph displays vertices and edges in a clean, readable format.

✨ Improvements

  • SfEnumSet: Debug views now show the string names of enum flags instead of just raw integers.
  • SfList: Optimized RemoveAtSwap logic for better inlining.
  • General: Added safeguards against uninitialized structs in debug views to prevent IDE crashes.

⚠️ Notes

  • SfGraph: Currently serves as a data structure. Advanced algorithms will be added in the next minor release.