Скажем, существует сторонний грузовой проект, состоящий из сторонних поставщиков, состоящий из библиотеки 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
.В идеале это вообще не касается сторонних производителей.