4
我想實現一個使用錯誤參數之一的錯誤描述,但我找不到一種方法來返回不會消失的描述。使用自己的字符串實現錯誤描述
#[derive(Debug, PartialEq)]
pub struct MissingParamError {
name: Box<String>
}
impl Error for MissingParamError {
fn description(&self) -> &str {
&format!("Missing parameter {}", self.name)
}
}
這當然會由於生成的描述超出範圍而導致錯誤。
對此有什麼解決辦法除了:
- 加入
MissingParamError::new
這將預渲染完整描述 - 添加
Option<String>
這將使得對需求的描述,並保持周圍
我們應該補充一下,這是故意的:描述是爲了一個*便宜的*錯誤描述,使用'Display'特性來分配/格式化錯誤文本。 (你無法從RefCell那裏得到長期的借款) – bluss
在'new'中急切地構建一個字符串很難*懶惰* ... –
@ChrisMorgan:這是*非常*懶惰,畢竟,要做到這一點懶惰會需要更努力。 (看不到最後一個字符,不知道你要做什麼) –