Find a file in current or parent directories
Handling Path and PathBuf types correctly;


My concern is that you recreate PathBuf every time, I don't see the point to have a buffer if you don't use it.


  Performance;


I think it's ok, you search one file in particular the time you take creating the string is cheap compare to system call. So I don't think read_dir is better on your case. This could be benchmarked.


  Rust writing style in general.


You are using return, on your case maybe use break to make your function SESE (single entry single exit).

Path::new(&amp;RUSV_FILENAME); the reference is not needed Path::new(RUSV_FILENAME);.

fn find_rusv_file(starting_directory: &amp;Path) -&gt; Option&lt;PathBuf&gt; {
    let mut path: PathBuf = starting_directory.into();
    let file = Path::new(RUSV_FILENAME);

    loop {
        path.push(file);

        if path.is_file() {
            break Some(path);
        }

        if !(path.pop() &amp;&amp; path.pop()) { // remove file &amp;&amp; remove parent
            break None;
        }
    }
}