email-type-rs 1.0.1

Email type for 'parse, don't validate' approach
Documentation
# Email type

Email type for approach suggested by Alexis King - ["Parse, don't validate"](https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/).

## How to use:

Add dependency:

```toml
email-type-rs = { git = "https://github.com/lebe-dev/email-type-rs", version = "1.0.0", features = ["utils"] }
```

Use:

```rust
let email = Email::from_str("lexi.lambda@gmail.com")?;
let email = "lexi.lambda@gmail.com".parse()?;

// fn some_func(value: &str)
some_func(email.as_str());
some_func(&email);
```

Useful for REST API Endpoints, i.e. `/api/register` accepts:

```rust
#[derive(Deserialize)]
struct UserRegistrationRequest {
    pub email: Email,
    ...
}
```

Incoming JSON with invalid value in `email` field will raise deserialization error (Serde).

## Util functions

Add to `Cargo.toml`:

```toml
[dev-dependencies]
email-type-rs = { git = "https://github.com/lebe-dev/email-type-rs", version = "1.0.0", features = ["utils"] }
```

Functions:

- `get_random_email()` - return random `Email`. Useful for tests.

## Thanks

- Alexis King, article - [Parse, don't validate]https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/
- Justin Wernick, article - [The Newtype Pattern In Rust]https://www.worthe-it.co.za/blog/2020-10-31-newtype-pattern-in-rust.html