pub fn generate_for_path<P, Q>(
    thread: &Thread,
    path: &P,
    out_path: &Q
) -> Result<()>where
    P: ?Sized + AsRef<Path>,
    Q: ?Sized + AsRef<Path>,