Rust には整数の primitive 型が多数あるが、どの型でもよしなに計算してくれる関数を書きたくなる。四則演算子を表す trait はあるのだが、細かく分かれているので指定するのが大変である。 use std::fmt::Display; use std::ops::{AddAssign, Mul, MulAssign}; fn execute<T>(mut x: T, y: T) where T: Display + Copy + MulAssign + Mul<Output = T> + AddAssign, { println!("x={}, y={}", x, y); x *= y; println!("x * y = {}", x); x += y * y; println!("x * y + y ^ 2 = {}", x); } fn main() { execute(