Putting a constraint like T: 'a means that all parameters of the lifetime of type T must satisfy the constraint of the lifetime of 'a (so he must survive it).
For example, if I have this structure:
struct Kate<'a, 'b> { address: &'a str, lastname: &'b str }
Kate<'a, 'b> will satisfy the constraint F: Human + 'static only if 'a == 'static and 'b == 'static .
However, a structure without any lifetime parameter will always satisfy any limitation of the lifetime.
So, as a summary, a restriction of type F: 'static means either:
F has no lifetime parameter- all parameters of the lifetime
F are equal to 'static
source share