Associated Types vs Generic Type Parameters in Rust: When to Use Each | CodeTrail