Dynamic vs Static Dispatch in Rust