构建第三方板条箱时,可以用包装器换出二进制文件使用的库吗?

时间:2019-05-16 12:26:12

标签: rust rust-cargo

假设有一个供应商提供的第三方货运项目,该项目由一个库plem和一个二进制文件plem_main组成,我想使用自己的某些功能对其进行扩展。至关重要的是,该功能需要放入库plem中,而不是二进制文件plem_main中(可以保持不变)。我可以在该库周围编写一个包装器my_plem,该包装器提供与二进制文件相同的接口,但包含额外的功能。该项目将按以下方式设置:

.
├── Cargo.toml
├── my_plem
│   ├── Cargo.toml
│   └── src
│       └── lib.rs
└── third-party
    ├── plem
    │   ├── Cargo.toml
    │   └── src
    │       └── lib.rs
    └── plem_main
        ├── Cargo.toml
        └── src
            └── main.rs

my_plem/src/lib.rs将取决于third-party/plem/src/lib.rs中的内容,然后重新导出或覆盖后者导出的函数。有什么好方法可以使货物在plem_main而不是my_plem的顶部构建二进制plem

这里的“最佳”是指在我的项目中更新plem时解决方案没有合并冲突或发生了最小的合并冲突,并且不重复plem_main的代码。理想情况下,它根本不涉及第三方。

0 个答案:

没有答案