1#![recursion_limit="128"]
8
9#[macro_use]
10extern crate log;
11#[macro_use]
12extern crate failure;
13extern crate media_type;
14extern crate chrono;
15extern crate futures;
16extern crate rand;
17extern crate vec1;
18extern crate soft_ascii_string;
19extern crate checked_command;
20#[cfg_attr(test, macro_use)]
21extern crate mail_headers as headers;
22extern crate mail_internals as internals;
23
24#[cfg(feature="serde")]
25extern crate serde;
26#[cfg(all(test, feature="serde"))]
27extern crate serde_test;
28
29#[cfg(feature="default_impl_cpupool")]
30extern crate futures_cpupool;
31#[cfg(feature="test-utils")]
32extern crate lazy_static;
33
34
35
36
37#[macro_use]
38mod macros;
39mod iri;
40pub mod error;
41pub mod utils;
42pub mod mime;
43pub mod context;
44mod resource;
45mod encode;
46mod mail;
47pub mod compose;
48#[cfg(feature="test-utils")]
49pub mod test_utils;
50
51pub mod default_impl;
52
53pub use self::iri::IRI;
54pub use self::resource::*;
55pub use self::mail::*;
56
57pub use ::context::{Context, MaybeEncData};
58
59
60
61#[cfg(all(feature="serde", not(feature="serde-impl")))]
62compile_error!(concat!(
63 "\n---------------------------------------\n",
64 " for serde use feature `serde-impl`,\n",
65 " `serde` can not be used as feature in\n",
66 " this crate due to limitations with Cargo\n",
67 "-----------------------------------------\n"
68));