Avatar ·

Como converter PathBuf para String em Rust: guia completo

Olá, colegas! Recentemente comecei a estudar Rust e me deparei com um problema ao trabalhar com o sistema de arquivos. Preciso obter o caminho absoluto para um arquivo e depois salvá-lo como uma string comum para processamento posterior (por exemplo, passar para JSON ou logging).\n\nAqui está meu código:\n\n```rust\nuse std::path::PathBuf;\nuse std::env;\n\nfn main() {\n let mut path = env::current_dir().unwrap();\n path.push("config.toml");\n \n // Quero obter uma string, mas não consigo\n let path_str: String = path; // Erro!\n println!("Caminho: {}", path_str);\n}\n```\n\nO compilador retorna um erro: `expected String, found PathBuf`. Eu entendo que `PathBuf` e `String` são tipos diferentes, mas como convertê-los? Tentei o método `.to_str()`, mas ele retorna `Option<&str>`, e eu preciso exatamente de uma `String`.\n\nAlguém pode me ajudar?