or-panic 1.0.2

unwrap or panic
Documentation
or-panic 🫨🤯
===

<p align="center">
    <img alt="dependency count" src="https://img.shields.io/deps-rs/repo/github/antonio-hickey/or-panic?style=for-the-badge" height="20">
    <img alt="size" src="https://img.shields.io/crates/size/or-panic?style=for-the-badge" height="20">
    <img alt="license" src="https://img.shields.io/crates/l/or-panic?style=for-the-badge" height="20">
    <img alt="build status" src="https://img.shields.io/github/actions/workflow/status/antonio-hickey/or-panic/ci.yml?style=for-the-badge" height="20">
</p>

A tiny extension trait that adds idiomatic `.or_panic(..)` methods to `Option` and `Result`.

```toml
[dependencies]
or-panic = "1.0.0"
```

## Example
```rust
use or_panic::ResultOrPanic;

fn main() {
    let duration = std::time::SystemTime::now()
        .duration_since(std::time::UNIX_EPOCH)
        .or_panic("oh no, the chrono demons have reversed the fabric of time");

    let secs = duration.as_secs();
    println!("Seconds since epoch: {secs}");
}
```

## Features
- Ergonomic unwrapping
- Works with any `Display`
- Pretty panic messages with `Result`
- Context on the exact line of panic
- Optional `no_std` support
    - enabled via: 
      ```
      default-features = false
      features = ["no_std"]   
      ```

## Quick Start
Add the crate to your `Cargo.toml`:
```toml
[dependencies]
or-panic = "1.0.0"
```

Import the traits:
```rust
use or_panic::prelude::*;
```

Use it:
```
let host = std::env::var("HOST")
    .or_panic("HOST environment variable must be set");
```

## no_std support
`or-panic` supports `no_std` environments.

Enable `no_std` mode like so:
```toml
[dependencies]
or-panic = { version = "1.0.0", default-features = false, features = ["no_std"] }
```

<br>

#### License

<sup>
Licensed under either of <a href="LICENSE-APACHE">Apache License, Version
2.0</a> or <a href="LICENSE-MIT">MIT license</a> at your option.
</sup>

<br>

<sub>
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in this crate by you, as defined in the Apache-2.0 license, shall
be dual licensed as above, without any additional terms or conditions.
</sub>