【发布时间】:2018-09-05 00:13:05
【问题描述】:
假设我有一个板条箱Lib1,它声明了如下内容:
#[macro_use]
extern crate quick_error;
quick_error! {
#[derive(Debug)]
pub enum MyError {
Foo {
description("FooError")
}
}
}
我还有一些依赖于Lib1 的库Lib2。
我想扩展这个MyError,添加一些特定于Lib2 的额外错误。这样我就可以重用在Lib1 中声明的所有基本错误。
顺便说一句,我可以完全控制这两个库,并且可以根据需要修改它们。我绝对想继续使用quick-error。是否有可能以某种方式扩展它?
注意:我已经看过Can I extend an enum with additional values? 这绝对是我在打开问题之前就知道的事情。
这并不能解决这个特定问题。理想情况下,我想继续使用quick_error。另外,使用组合来处理错误会使下游的错误处理变得非常复杂。有没有很好的模式来扩展库中的错误?
【问题讨论】:
标签: rust