хранить несколько, чтобы их накапливать. Делаю так: #[derive(Debug)]
pub struct CError(Vec<Box<dyn std::error::Error>>);
impl<T: std::error::Error + 'static> From<T> for CError {
fn from(error: T) -> Self {
CError(vec![Box::new(error)])
}
}
и потом получаю вот это: error[E0277]: the trait bound &str: std::convert::From<&str> is not satisfied
--> src/lib/file.rs:25:41
|
25 | .ok_or_else(|| CError::from("Name attribute is mandatory for file"))?;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
| expected an implementor of trait std::convert::From<&str>
| help: consider borrowing here: &"Name attribute is mandatory for file"
|
= note: required because of the requirements on the impl of std::convert::From<&str> for lib::error::CError
= note: required by std::convert::From::from
error[E0277]: the trait bound std::string::String: std::convert::From<std::string::String> is not satisfied
str же не имлементит Error
можешь применить такой подход: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=eb88cffc3d5ba9f582df365367329c0e
Обсуждают сегодня