У меня возникают проблемы с попыткой понять, почему я не могу вернуть значение &str
, генерируемое из String
(доброта, когда будет as_str
готова?), и я делаю что-то неправильно. Я получаю эту идею, потому что ничто из того, что я делаю, не заставляет ценность жить достаточно долго, чтобы ее использовать.
Я пытаюсь реализовать error::Error
для настраиваемой структуры:
impl error::Error for LexicalError {
fn description(&self) -> &str {
let s = format!("{}", self);
// s doesn't live long enough to do this, I've tried
// cloning s and using that, but still the clone doesn't
// live long enough.
s.trim()
}
fn cause(&self) -> Option<&error::Error> {
None
}
}
(для полного фрагмента, вот playpen)
Я не могу понять, как вернуть & str из description
, я хотел бы повторно использовать логику Display
, если, конечно, я полностью не понимаю, что должно возвращаться description
(возможно, краткое описание проблемы). Либо я получаю ту же проблему с возвратом format!(...)
, которая является переменной, которую я, похоже, не может прожить достаточно долго, чтобы быть полезной для меня.