Implementation
Similar to functions, implementations require care to remain generic.
struct Val {val: f64,}struct GenVal<T> {gen_val: T,}// impl of Valimpl Val {fn value(&self) -> &f64 {&self.val}}// impl of GenVal for a generic type `T`impl<T> GenVal<T> {fn value(&self) -> &T {&self.gen_val}}fn main() {let x = Val { val: 3.0 };let y = GenVal { gen_val: 3i32 };println!("{}, {}", x.value(), y.value());}