That makes sense, thanks again! I think dynamic dispatch is not as much of a performance issue in my case, yet you’re totally right not to waste resources that aren’t actually needed. Keeping things on the stack if possible is also a good thing.
I’ll definitely need to read more about Rusts type system but your explanation was already very helpful! I think this might be why my initial approach felt unnatural - it works but is quite cumbersome and with generics there seems to be a more elegant approach.
That’s what I wanted to say as well! Most AI stuff in software development is bullshit, but full line completion is actually so useful!