pub struct EmailAddress(/* private fields */);
Expand description
Type representing a single email address. This is basically a wrapper around a String, the
email address is parsed for correctness with FromStr::from_str
, which is the only want to
create an instance. The various components of the email are not parsed out to be accessible
independently.
Implementations§
source§impl EmailAddress
impl EmailAddress
sourcepub fn new_unchecked<S>(address: S) -> Self
pub fn new_unchecked<S>(address: S) -> Self
Creates an EmailAddress
without checking if the email is valid. Only
call this method if the address is known to be valid.
use std::str::FromStr;
use email_address::EmailAddress;
let unchecked = "john.doe@example.com";
let email = EmailAddress::from_str(unchecked).expect("email is not valid");
let valid_email = String::from(email);
let email = EmailAddress::new_unchecked(valid_email);
assert_eq!("John Doe <john.doe@example.com>", email.to_display("John Doe"));
sourcepub fn is_valid(address: &str) -> bool
pub fn is_valid(address: &str) -> bool
Determine whether the address
string is a valid email address. Note this is equivalent to
the following:
use email_address::*;
use std::str::FromStr;
let is_valid = EmailAddress::from_str("johnstonskj@gmail.com").is_ok();
sourcepub fn is_valid_local_part(part: &str) -> bool
pub fn is_valid_local_part(part: &str) -> bool
Determine whether the part
string would be a valid local-part
if it were in an
email address.
sourcepub fn is_valid_domain(part: &str) -> bool
pub fn is_valid_domain(part: &str) -> bool
Determine whether the part
string would be a valid domain
if it were in an
email address.
sourcepub fn to_uri(&self) -> String
pub fn to_uri(&self) -> String
Return this email address formatted as a URI. This will also URI-encode the email
address itself. So, name@example.org
becomes mailto:name@example.org
.
use email_address::*;
use std::str::FromStr;
assert_eq!(
EmailAddress::from_str("name@example.org").unwrap().to_uri(),
String::from("mailto:name@example.org")
);
sourcepub fn to_display(&self, display_name: &str) -> String
pub fn to_display(&self, display_name: &str) -> String
Return a string formatted as a display email with the user name. This is commonly used in email headers and other locations where a display name is associated with the address.
use email_address::*;
use std::str::FromStr;
assert_eq!(
EmailAddress::from_str("name@example.org").unwrap().to_display("My Name"),
String::from("My Name <name@example.org>")
);
sourcepub fn local_part(&self) -> &str
pub fn local_part(&self) -> &str
Returns the local part of the email address. This is borrowed so that no additional allocation is required.
use email_address::*;
use std::str::FromStr;
assert_eq!(
EmailAddress::from_str("name@example.org").unwrap().local_part(),
String::from("name")
);
Trait Implementations§
source§impl AsRef<str> for EmailAddress
impl AsRef<str> for EmailAddress
source§impl Clone for EmailAddress
impl Clone for EmailAddress
source§fn clone(&self) -> EmailAddress
fn clone(&self) -> EmailAddress
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for EmailAddress
impl Debug for EmailAddress
source§impl Display for EmailAddress
impl Display for EmailAddress
source§impl From<EmailAddress> for String
impl From<EmailAddress> for String
source§fn from(email: EmailAddress) -> Self
fn from(email: EmailAddress) -> Self
source§impl FromStr for EmailAddress
impl FromStr for EmailAddress
source§impl Hash for EmailAddress
impl Hash for EmailAddress
source§impl PartialEq for EmailAddress
impl PartialEq for EmailAddress
impl Eq for EmailAddress
Auto Trait Implementations§
impl Freeze for EmailAddress
impl RefUnwindSafe for EmailAddress
impl Send for EmailAddress
impl Sync for EmailAddress
impl Unpin for EmailAddress
impl UnwindSafe for EmailAddress
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)