>>944
動的に生成したパス文字列なら生成した文字列を保持するメモリが必要だからPathBufで返す
関数の中で作成したString(OsString)は関数を抜けるといなくなるからそれを参照する&Pathは返せない
どーーーしても&Pathで返したいなら生成した文字列を保持するための&mut OsStringを渡すみたいな技巧が必要

単純に使いたい関数の引数が&Pathなのであれば&PathBufを&Pathとして使える(&Stringが&strになるのと同じ)