@329

Как исправиться ошибку lifetime?

Код
pub struct List<'a> {
    node: Option<Node<'a>>,
    list_vec: Vec<Node<'a>>,
}


pub struct Node<'a> {
    data: String,
    next: Option<&'a Node<'a>>,
}


impl List<'_> {
    fn add(&mut self, val: String, referenced_node: &Node){
        self.node = Some(Node {
            data: String::from(String::from(val)),
            next: Some(referenced_node), // тут должен быть референс на оригинальную перемененную которою я передаю через new_node
        });
}
  • Вопрос задан
  • 118 просмотров
Пригласить эксперта
Ответы на вопрос 1
bingo347
@bingo347
Crazy on performance...
impl<'a> List<'a> {
    fn add(&mut self, val: String, referenced_node: &'a Node) {
        self.node = Some(Node {
            data: String::from(String::from(val)),
            next: Some(referenced_node),
        });
    }
}
правда скорее всего будут траблы уже в месте вызова этого метода, но что бы поправить недостаточно контекста

Вообще думаю тут имеет смысл использовать Box/Rc/Arc вместо ссылок
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы