5

我想使用由板条箱 A 中的函数返回的类型,该类型实际上是在板条箱 B 中定义的,但板条箱 A 不会重新导出它。

虽然我可以在我的 中明确添加板条箱 B Cargo.toml,但我不确定如何使其版本与板条箱 A 中使用的版本保持同步。

更具体地说,类型是url::ParseError,板条箱 A 是reqwest,板条箱 B 是url

4

1 回答 1

1

没有围绕这个问题的“官方”指南。不久前就最佳实践进行了讨论,但没有明确的结论。许多 crate 包装了外部类型,因此它们不会直接暴露,或者它们重新导出项目。此处讨论了reqwest 的这个特定问题,并决定不重新导出url::ParseError

我个人的感觉是这有点小众,所以对于那些不需要它的人来说,它只会让 API 变得混乱。对于确实需要检查此特定错误的任何人,他们可以将urlcrate 添加为依赖项。

于 2021-01-26T15:07:29.510 回答