Fn
pub trait ParticleFunction: 'static + Send + Sync {
fn call(&self, args: Args, particle: ParticleParams) -> Foo<'_>;
}
Хочу его реализовать для например FnMut
impl<F> ParticleFunction for F
where
F: for<'a> FnMut((Args, ParticleParams)) -> Foo<'a>,
{
fn call(&self, args: Args, particle: ParticleParams) -> F::Output {
self((args, particle))
}
}
Но увы
error[E0582]: binding for associated type `Output` references lifetime `'a`, which does not appear in the trait input types
|
49 | F: for<'a> FnMut((Args, ParticleParams)) -> Foo<'a>,
| ^^^^^^^
привязка для ассоциированного типа `Output` ссылается на время жизни `'a', которое не появляется в типе входных данных трейта
Я понимаю, что написано. Но не понимаю, что ему не нравится 🙂 Вроде я ж написал for <'a>
да это больно, если это та же ошибка что я сталкивался (похожа по крайней мере)
Обсуждают сегодня