I'm new to Rust but I believe there is an alternative to dynamic dispatch (dyn) called static dispatch which is statically compiled and doesn't use a vlookup table behind the scenes, the function is compiled for each used concrete implementation. Thought that's worth mentioning.