Compiler forces me to implement trait method but the `Self` trait bound on method is never satisfied for my type
问题 I have a trait Foo . I want to force implementors to define a method, if those implementors implement another trait ( Clone in this example). My idea (Playground): trait Foo { // Note: in my real application, the trait has other methods as well, // so I can't simply add `Clone` as super trait fn foo(&self) where Self: Clone; } struct NoClone; impl Foo for NoClone {} Sadly, this leads to: error[E0046]: not all trait items implemented, missing: `foo` --> src/lib.rs:8:1 | 2 | / fn foo(&self) 3 |