У меня есть следующая структура в одном из ящиков, которые я использую.
pub struct Set<'a, 'b: 'a, 'c: 'a + 'b> {
sockets: ManagedSlice<'a, Option<Item<'b, 'c>>>,
}
impl<'a, 'b: 'a, 'c: 'a + 'b> Set<'a, 'b, 'c> {
pub fn new<SocketsT>(sockets: SocketsT) -> Set<'a, 'b, 'c>
where
SocketsT: Into<ManagedSlice<'a, Option<Item<'b, 'c>>>>,
{
let sockets = sockets.into();
Set { sockets: sockets }
}
}
Мне нужно, чтобы структура Set
была одним из полей в другой структуре:
pub struct foo {
sockets: Set,
}
impl foo {
pub fn init(&mut self) {
self.sockets = Set::new(vec![]);
}
}
Это приводит к следующей ошибке:
|
21 | sockets:Set,
| ^^^^^^^^^ expected 3 lifetime parameters
Я читал о расширенных жизнях, но не мог понять, как это решить. Как здесь правильно установить время жизни?
PascalCase
:foo
предпочтительно должно бытьFoo
. - person E_net4 the curator   schedule 05.04.2018