irrefutable 0.1.1

Procedural macro to convert a refutable let expression to an irrefutable.
Documentation
# Irrefutable

Procedural macro to convert a refutable let expression to an irrefutable.

## Examples

panic:

```rust
#![feature(proc_macro_hygiene)]

use irrefutable::irrefutable;

#[irrefutable(panic("The couse."))]
let Some((a, b)) = Some(("a", "b"));
```

expands to:

```rust
let (a, b) = if let Some((a, b)) = Some(("a", "b")) {
    (a, b)
} else {
    panic!("The couse.");
};
```

return:

```rust
#![feature(proc_macro_hygiene)]

use irrefutable::irrefutable;

#[irrefutable(return)]
let Some((a, b)) = Some(("a", "b"));
```

expands to:

```rust
let (a, b) = if let Some((a, b)) = Some(("a", "b")) {
    (a, b)
} else {
    return;
};
```

unreachable:

```rust
#![feature(proc_macro_hygiene)]

use irrefutable::irrefutable;

#[irrefutable(unreachable)]
let Some((a, b)) = Some(("a", "b"));
```

expands to:

```rust
let (a, b) = if let Some((a, b)) = Some(("a", "b")) {
    (a, b)
} else {
    unreachable!();
};
```