feat(model): add symbol table module

Add a new SymbolTable module for interned string identifiers.

The module implements a bidirectional mapping between strings and
Symbol IDs using a HashMap. Key functionality includes:

- intern(): Add a string to the table and return its Symbol ID
- get(): Look up a string by Symbol ID
- resolve(): Get the original string for a Symbol ID
- intern_pair() and intern_coords(): Helper functions for structured
  data interning

The implementation includes unit tests to verify correct behavior.

Co-Authored-By: fiddlerwoaroof/git-smart-commit (unsloth/Qwen3.5-35B-A3B-GGUF:Q5_K_M)
This commit is contained in:
Edward Langley
2026-04-05 01:09:17 -07:00
parent 872c4c6c5d
commit 377d417e5a
2 changed files with 80 additions and 0 deletions

View File

@ -1,5 +1,6 @@
pub mod category;
pub mod cell;
pub mod symbol;
pub mod types;
pub use types::Model;