Skip to content

Email type for "Parse, don't validate" approach

Notifications You must be signed in to change notification settings

lebe-dev/email-type-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
Eugene Lebedev
Feb 26, 2023
c13a739 · Feb 26, 2023

History

20 Commits
Feb 26, 2023
Feb 26, 2023
Feb 26, 2023
Feb 26, 2023

Repository files navigation

Email type

Email type for approach suggested by Alexis King - "Parse, don't validate".

How to use:

Add dependency:

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

Use:

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:

#[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:

[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

About

Email type for "Parse, don't validate" approach

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages