Как использовать код из примера библиотеки в самой библиотеке? - PullRequest
0 голосов
/ 06 ноября 2019
├── Cargo.lock
├── Cargo.toml
├── src
│    └── model.rs
└── examples
    └── client
           └──mod.rs

Я хочу использовать структуру с именем Client, которая существует в examples > client > mod.rs в моем model.rs файле. Имя моего пакета CratesTest в Cargo.toml.

Я пробовал это в своем model.rs:

extern crate CratesTest;

fn main() {
    CratesTest::Client::new(/*snip*/)
}

Я получаю сообщение об ошибке:

error[E0433]: failed to resolve: could not find `Client` in `CratesTest`
let client = CratesTest::Client::new(...
                         ^^^^^^ could not find `Client` in `CratesTest`            

Я также пытался использовать mod client;, но это не привело к его расширению.

1 Ответ

2 голосов
/ 06 ноября 2019

Я бы сказал, что здесь есть инверсия зависимости: разумно, чтобы ваши примеры зависели от вашей библиотеки, но почему ваша библиотека зависит от примеров? Как указывает Денис Сегуре, документация гласит:

Файлы, расположенные под примерами, являются примерами использует функциональности, предоставляемой библиотекой

поэтому примеры используют библиотеку, а не наоборот.

...