Option<T>
has a From<T>
implementation that lets you write Option::from($file_path).map(|path| path.to_string())
to accept both cases in the same expression.
https://doc.rust-lang.org/std/option/enum.Option.html#impl-From%3CT%3E-for-Option%3CT%3E
That's definitely part of "the deal" with MIT and Apache. The other end of it is that they shouldn't really expect to get anything more than what the authors are willing to give.