play.rust-lang.org/...

struct RefWrap<'a> {
    wrap: &'a mut Option<String>,
}

impl<'a> RefWrap<'a> {
    fn unwrap(&mut self) -> &'a mut String {
        match *self.wrap {
            Some(ref mut s) => s,
            None => panic!(),
        }
    }
}

(ая площадка)

Насколько я понимаю, этот код правильный (возвращенная ссылка действительно имеет время жизни'a, Но Rust выдает следующую ошибку:

error[E0495]: cannot infer an appropriate lifetime for pattern due to conflicting requirements
 --> <anon>:8:18
  |
8 |             Some(ref mut s) => s,
  |                  ^^^^^^^^^

Использование неизменяемых ссылок, работает без ошибок.

Там былоодин похожий вопрос, но я уверен, что это не поможет в этом случае.

Ответы на вопрос(1)

Ваш ответ на вопрос