How to work with paths and PathBuf

Use Path for immutable references and PathBuf for owned, mutable file paths in Rust.

Use Path for immutable path references and PathBuf for owned, mutable paths. Convert between them using as_path() on PathBuf or Path::new() on string slices.

use std::path::{Path, PathBuf};

fn main() {
    let path_buf = PathBuf::from("/home/user/docs");
    let path: &Path = path_buf.as_path();
    let new_path = Path::new("/tmp");
    println!("Owned: {:?}, Borrowed: {:?}", path_buf, new_path);
}