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.
In my personal opinion: Yes. Wine is great and all, but in the end it’s an emulation layer that - in the worst case - requires a lot of tweaking. I personally wouldn’t want to spend that time so a VM sounds like a good option. But again, depending on the context (e.g. limited hardware resources or the amount of time available) you might be totally fine with Wine.