# `Unsure<T>` Enum
`Unsure<T>` is a custom enum which is essentially
[`Option<T>`](https://doc.rust-lang.org/std/option/enum.Option.html)
with an additional `Reject` variant, for handling values that are deemed to be
wholly negative (such as a failure state or an invalid input).
Its variants are:
- `Reject`: An erroneous or unwanted value, used to mark a situation where an
unsure state should be rejected or cancelled. This is the main reason for
using `Unsure<T>` over `Option<T>` - if you don't need to manage failure
separately from absence, just stick with `Option<T>`.
- `Nothing`: No value, like `Option<T>`'s `None`, used to mark a situation
where an unsure state should be ignored or skipped. Takes its name after
Haskell's `Nothing` variant of the `Maybe` type.
- `Just(T)`: Some value of type `T`, like `Option<T>`'s `Some(T)`, used to
confirm that an unsure state is valid and confirmed. Takes its name after
Haskell's `Just a` variant of the `Maybe` type.
## Installation
`unsure-rs` (`unsure` on crates.io) is a library crate, so you must add it to
an existing Rust project:
```
cargo add unsure
```
You can additionally type it out manually in `Cargo.toml`, but using the CLI
is easier.
## Usage
See the [docs.rs](https://docs.rs/unsure) for usage instructions and detailed
explanations of the enum.