It seems the function signature of
map_or_else is backwards.
pub fn map_or_else<U, D: FnOnce() -> U, F: FnOnce(T) -> U>(self, default: D, f: F) -> U
It would be more intuitive to accept the map closure first then the default.
Is this an implementation detail or is there some other reason for this?