Объясните пожалуйста что такое лайфтайм ’static. Не очень понимаю как он работает. Исходя из документации, это верхней лайтайм в программе. Но при этом во многих приписках указывает что это просто наибольший возможный лайфтайм. Пример:
pub struct Future<V: Send + 'static, E: Send + Clone + 'static> {
value: Option<Result<V, E>>,
next: Option<Box<FnMut(&Result<V, E>) -> () + Send>>
}
Если исходить из первого утверждения, то V никогда не должно дропнуться и навсегда остаться в живых, но все же это случается тогда, когда дропается сам объект Future. Исходя их этого вопрос - а что же тогда обозначает ’static? Привязка ко времени жизни самого верхнего объекта?