Abstract SbqNode in preparation for adding a labeled variant (#203)
This is a pure refactoring change to introduce a layer of abstraction around SBQ nodes so that we can introduce a labeled variant in a coming PR. The basic idea is for `SbqNode` to become an enum wrapper class around the concrete implementations, currently just `ClassicSbqNode`. Since `SbqNode` has a bunch of derived classes and traits, I had to introduce wrappers for those too, in addition to tweaking some abstractions. (It gets a little ugly, and I'm open to suggestions to find ways to simplify. I did experiment with an alternate approach, which was to add the SBQ node type as a parameter in `SbqSpeedupStorage`, but this turned out to be equally messy, due to the same plethora of derived traits and classes associated with `SbqNode`.) Test strategy: existing unit tests. No new functionality added.
T
tjgreen42 committed
0763824ed37bbb9f53262388ef15ec622a16512b
Parent: 8972433
Committed by GitHub <noreply@github.com>
on 3/7/2025, 1:18:14 AM