info: &'reg T,
owner: &'reg Registry,
}
Мне нужен аналог, но с info: &'reg mut T. Есть ли способ получить его без копипасты? Всё, что смог придумать, это надеяться на то, что T это ссылка (есть ли трейт, чтобы это обозначить?) и передавать в качестве T либо &U, либо &mut U. Но тогда теряется привязанность info к лайфтайму 'reg, это мне тоже не нравится
Сделал RegEntry<'reg, T, R: Borrow<T>>. Пользовался как RegEntry<'a, U, &'a U>. Не очень красиво, но ничего лучше я не придумал И в имплементации DerefMut потребовал R: BorrowMut<T> А потом выяснил, что моё желание было греховным с самого начала: info ссылается на owner, при этом мутабельная ссылка будет пересекаться с иммутабельной
Обсуждают сегодня