可以根据不同的泛型类型实现不同的函数
pub struct Wrapper<T> {pub inner: T}impl <T> Wrapper<T>where T:std::fmt::Debug{pub fn debug(&self) {println!("{:?}", self.inner);}}
我们可以说,当T实现了Debug这个trait的时候,给Wrapper这个结构体实现debug函数,所以
fn main() {let w = multiple_impl::Wrapper{inner: String::new()};w.debug()}
这样调用是可以的
struct Foo;fn main() {let w = multiple_impl::Wrapper{inner: Foo{}};w.debug()}
这样就会有编译错误,因为Foo这个结构体没有实现Debug trait
