Can we subclass the stored objects? From a short look at your API docs I doubt
it:
Entry = object
id*: uint32
pos*: Vec2
Run
Well subclassing value objects works more or less, (see
<https://forum.nim-lang.org/t/7733>) but I have the feeling that you store the
Entry instances in a seq, and I assume at least then subclassing will fail?
And without subclassing the lib is a bit restricted, as we generally want to
add attributes to the stored objects. Like names, colors and all that. Well we
can somehow map each entry instance to other data by use of its id field, maybe
mapping to array or table values. But that is a poor solution, I did something
similar many years ago mapping Ruby API to CGAL and BOOST libs. Nim's generics
should offer better solutions.
Unfortunately I have the same problem with my CDT. I just discovered that it
compiles fine with ORC, and after adding cursor notation it compiles and works
with ARC too. (I do not really understand cursor annotation, but valgrind does
not complain, so maybe it is OK.) But as the CDT lib was created strictly
following papers, it is not yet generic. Similar to your spacy libs it stores
plain points, but for real live I have to attach more data to the Vertices and
edges. That was the reason I just visited your lib, to get some fine ideas. But
it seems that I have to do some own thinking. The API of a CDT lib is a
complicated beast, only its use can show how a useful API have to look.
Unfortunately