or-else-map 0.1.0

non-yoda versions of Option::map_or_else and Result::map_or_else
Documentation
# `or-else-map`

Fix `Option::map_or_else` and `Result::map_or_else`, to make sense.

## Why?

- `Option::map_or_else` and `Result::map_or_else` were presumably written by
  yoda; the `map` and `or_else` are reversed from what they should be.
- "if you aint first you're last" (Bobby, et al., 2006)

## Example

```rust
use or_else_map::prelude::*;

fn option_eg() {
    let x = Some(2);
    let y = x.map_or_else(|| 0, |v| v * 2); // yoda
    let z = x.or_else_map(|| 0, |v| v * 2); // not-yoda
    assert_eq!(y, 4);
    assert_eq!(z, 4);

    let x: Option<i32> = None;
    let z = x.or_else_map(|| 0, |v| v * 2);
    assert_eq!(z, 0);
}

fn result_eg() {
    let x: Result<i32, &str> = Ok(2);
    let y = x.map_or_else(|e| 0, |v| v * 2); // yoda
    let z = x.or_else_map(|e| 0, |v| v * 2); // not-yoda
    assert_eq!(y, 4);
    assert_eq!(z, 4);

    let x: Result<i32, &str> = Err("oof");
    let z = x.or_else_map(|e| 0, |v| v * 2);
    assert_eq!(z, 0);
}

fn main() {
    option_eg();
    result_eg();
}
```

---

## Acknowledgements

- my fans and family
- the academy and the hollywood foreign press
- the rust developers