【发布时间】:2019-12-23 14:51:26
【问题描述】:
我正在编写 2 个具有不同 API 的 rust 数据结构(容器),但大约 50% 的幕后功能是相似的。 FWIW,第一个是存储可比较 (std::cmp::Ord) 数据的红黑树,另一个是具有类似 API 的列表的容器,不需要数据可比较,并且使用类似于红黑树排序的缓冲区。
我认为通常这两种容器数据结构都会作为库存储在 2 个不同的 crate 中。但是它们共享一些私有功能,例如树再平衡。我坚持不维护相同私有(相当复杂)代码的 2 个版本,所以我认为我剩下的唯一选择是将 2 个数据结构组合到同一个 crate 中。有没有更好的选择?
【问题讨论】:
标签: rust private encapsulation organization code-organization