Я пытаюсь получить доступ к версии конкретного clap::App
, который я создал.Однако поле version
существует так же, как и общедоступная функция version()
Вот соответствующие биты исходного кода:
pub struct App<'a, 'v, 'ab, 'u, 'h, 'ar> {
// ...
version: Option<&'v str>,
// ...
}
impl<'a, 'v, 'ab, 'u, 'h, 'ar> App<'a, 'v, 'ab, 'u, 'h, 'ar>{
// ...
pub fn version(mut self, v: &'v str) -> Self {
self.version = Some(v);
self
}
// ...
}
И мой код:
pub fn build_cli() -> App<'static, 'static> {
App::new("my-pi")
.version("0.1.0")
// ...
let app = build_cli();
assert_eq!(app.version, "0.1.0"); // <-- Error here
Поле version
и функция version()
оба существуют на App
.Как это может быть?А как мне получить доступ к полю version
?
Ошибка:
error[E0615]: attempted to take value of method `version` on type `clap::App<'_, '_>`
--> src/cli.rs:27:21
|
27 | assert_eq!(app.version, "0.1.0");
| ^^^^^^^
|
= help: maybe a `()` to call it is missing?