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
34
35
36
37
38
39
//! Provides some internal functionality for the `mail` crate.
#![recursion_limit="256"]
extern crate failure;
#[macro_use]
extern crate nom;
extern crate chrono;
extern crate media_type;
extern crate soft_ascii_string;
extern crate base64;
extern crate quoted_printable;
extern crate idna;
extern crate quoted_string;
extern crate media_type_impl_utils;
extern crate percent_encoding;
extern crate vec1;

//NOTE: this would be worth it's own independent crate for utility macros
#[macro_use]
mod macros;
#[macro_use]
pub mod utils;
mod mail_type;
#[macro_use]
pub mod error;
pub mod grammar;
//NOTE: encoder is in the order _above_ bind, i.e. bind can import the encoder,
//  but the encoder should not import anything from bind!
#[cfg_attr(test, macro_use)]
pub mod encoder;
pub mod bind;

pub use self::mail_type::*;

#[cfg(all(test, not(feature="traceing")))]
compile_error! { "testing needs feature `traceing` to be enabled" }

//reexports for exported macros
#[doc(hidden)]
pub use failure::Error as __FError;