1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
//! An RFC 5322 compliant email address parser.
//! 
//! # Examples
//! You can parse string for email address like this.
//! ```
//! use email_address_parser::EmailAddress;
//! 
//! let email = EmailAddress::parse("foo@bar.com", Some(true)).unwrap();
//! assert_eq!(email.get_local_part(), "foo");
//! assert_eq!(email.get_domain(), "bar.com");
//! ```
//! 
//! For an input string that is an invalid email address, it returns `None`.
//! ```
//! use email_address_parser::EmailAddress;
//! 
//! assert!(EmailAddress::parse("test@-iana.org", Some(true)).is_none());
//! ```
//! 
//! To parse an email address with obsolete parts (as per RFC 5322) in it, pass `None` as the second argument to have non-strict parsing.
//! ```
//! use email_address_parser::EmailAddress;
//! 
//! let email = EmailAddress::parse("\u{0d}\u{0a} \u{0d}\u{0a} test@iana.org", None);
//! assert!(email.is_some());
//! ```

#[macro_use]
extern crate pest_derive;

mod email_address;
#[doc(inline)]
pub use self::email_address::EmailAddress;