趣旨
.map_err(|e| eyre::eyre!("{e}"))
最初に思いつくのはこれですが、階層化された情報が失われます(一番新しいエラーメッセージだけになる)
そのときはこのtraitを使います。
// https://github.com/eyre-rs/eyre/issues/31
impl<T> ResultUtil<T> for anyhow::Result<T> {
fn to_eyre(self) -> eyre::Result<T> {
self.map_err(|e| {
eyre::eyre!(Box::<dyn std::error::Error + Send + Sync + 'static>::from(
e
))
})
}
}