Rust, опция trait bound не определяется с помощью process :: Command - PullRequest
0 голосов
/ 11 июля 2020

Прежде всего, я знаю, что есть пакет для git. Я делаю программу для практики Rust, и у меня складывается стек. Идея (с этого момента) состоит в том, чтобы посмотреть на текущую ветку и произвести проверку (переключение). Как я уже сказал, не возражайте против того, чтобы оформить заказ на актуальную ветку и потренироваться с Rust.

Это фрагмент кода:

fn get_current_branch() {
    let current_branch = Command::new("git")
        .arg("rev-parse")
        .arg("--abbrev-ref")
        .arg("HEAD")
        .output()
        .expect("Can't retrieve the current branch");
    let current: String = String::from_utf8(current_branch.stdout).unwrap().to_string();
    Command::new("git")
        .arg("checkout")
        .arg(current.pop())
        .spawn()
        .expect("Can't change branch");
}

Проблема в том, что строка при выполнении pop() показывает ошибку:

«граница черты std::option::Option<char>: std::convert::AsRef<std::ffi::OsStr> не удовлетворена»

Я посмотрел на другой возможный ответ, но ничего не работает.

Спасибо за помощь, ?‍♂️.

1 Ответ

0 голосов
/ 11 июля 2020

Я предполагаю, что вы хотите использовать всю ветку, а не только первый символ, который вам даст pop. Итак, просто используйте current или current.trim(), если после этого появится новая строка, от которой вы хотите избавиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...