#rust #rust-cargo #serde #rust-criterion
#Ржавчина #rust-груз #serde #rust-критерий
Вопрос:
Я добавил следующие строки в cargo.toml
свой проект, чтобы сравнить свой код:
[dev-dependencies]
criterion = "0.3"
[[bench]]
name = "samples"
harness = false
После запуска cargo bench
я получаю много ошибок, подобных следующим:
Compiling criterion v0.3.4
error[E0603]: module `export` is private
--> C:DevelopmentRustcargoregistrysrcgithub.com-1ecc6299db9ec823criterion-0.3.4srcconnection.rs:201:17
|
201 | #[derive(Debug, Deserialize)]
| ^^^^^^^^^^^ private module
|
note: the module `export` is defined here
--> C:DevelopmentRustcargoregistrysrcgithub.com-1ecc6299db9ec823serde-1.0.123srclib.rs:275:5
|
275 | use self::__private as export;
Мне кажется, что сообщение об ошибке связано с проблемой между serde
и criterion
. Но я не нашел этого сообщения об ошибке ни в одном из вопросов проекта, так что в моем рабочем пространстве может быть скрытая причина.
Некоторая дополнительная информация:
- проект компилируется с использованием набора инструментов nightly
- существует только одна явная зависимость (макросы proc), в
cargo.toml
которой транзитивные ссылкиsyn
quote
иproc-macro2
Ответ №1:
serde
Версия и serde_derive
версия в вашем графике зависимостей не совпадают. Вам нужно использовать cargo update
, чтобы синхронизировать их. У двух всегда должен быть одинаковый номер версии.