Error code E0195
The lifetime parameters of the method do not match the trait declaration.
Erroneous code example:
#![allow(unused)] fn main() { trait Trait { fn bar<'a,'b:'a>(x: &'a str, y: &'b str); } struct Foo; impl Trait for Foo { fn bar<'a,'b>(x: &'a str, y: &'b str) { // error: lifetime parameters or bounds on method `bar` // do not match the trait declaration } } }
The lifetime constraint 'b
for bar()
implementation does not match the
trait declaration. Ensure lifetime declarations match exactly in both trait
declaration and implementation. Example:
#![allow(unused)] fn main() { trait Trait { fn t<'a,'b:'a>(x: &'a str, y: &'b str); } struct Foo; impl Trait for Foo { fn t<'a,'b:'a>(x: &'a str, y: &'b str) { // ok! } } }