summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilipp Korber <philippkorber@gmail.com>2018-11-22 13:15:46 +0100
committerPhilipp Korber <philippkorber@gmail.com>2018-11-22 13:15:46 +0100
commitf6c2b38e31d2557a7edfa5b5d9c0332816e728d8 (patch)
tree0d6e020a30ecddfceba2d0622ae2b9ae80a0bef2
parent10962b6f553b377b51e80b81a29ac8b7f34bd579 (diff)
chore(new-api) removed no longer needed InnerTemplate impl. detail
-rw-r--r--src/lib.rs46
-rw-r--r--src/serde_impl.rs8
2 files changed, 18 insertions, 36 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 8bbf005..b568527 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -14,7 +14,6 @@ use std::{
collections::HashMap,
fmt::Debug,
path::{Path, PathBuf},
- sync::Arc,
ops::Deref
};
@@ -129,56 +128,43 @@ pub fn load_toml_template_from_str<TE, C>(
/// A Mail template.
#[derive(Debug)]
pub struct Template<TE: TemplateEngine> {
- inner: Arc<InnerTemplate<TE>>
+ template_name: String,
+ base_dir: CwdBaseDir,
+ subject: Subject<TE>,
+ /// This can only be in the loaded form _iff_ this is coupled
+ /// with a template engine instance, as using it with the wrong
+ /// template engine will lead to potential bugs and panics.
+ bodies: Vec1<BodyTemplate<TE>>,
+ //TODO: make sure
+ embeddings: HashMap<String, Resource>,
+ attachments: Vec<Resource>,
+ engine: TE,
}
impl<TE> Template<TE>
where TE: TemplateEngine
{
pub fn inline_embeddings(&self) -> &HashMap<String, Resource> {
- &self.inner.embeddings
+ &self.embeddings
}
pub fn attachments(&self) -> &[Resource] {
- &self.inner.attachments
+ &self.attachments
}
pub fn engine(&self) -> &TE {
- &self.inner.engine
+ &self.engine
}
pub fn bodies(&self) -> &[BodyTemplate<TE>] {
- &self.inner.bodies
+ &self.bodies
}
pub fn subject_template_id(&self) -> &TE::Id {
- &self.inner.subject.template_id
+ &self.subject.template_id
}
}
-impl<TE> Clone for Template<TE>
- where TE: TemplateEngine
-{
- fn clone(&self) -> Self {
- Template { inner: self.inner.clone() }
- }
-}
-
-#[derive(Debug)]
-struct InnerTemplate<TE: TemplateEngine> {
- template_name: String,
- base_dir: CwdBaseDir,
- subject: Subject<TE>,
- /// This can only be in the loaded form _iff_ this is coupled
- /// with a template engine instance, as using it with the wrong
- /// template engine will lead to potential bugs and panics.
- bodies: Vec1<BodyTemplate<TE>>,
- //TODO: make sure
- embeddings: HashMap<String, Resource>,
- attachments: Vec<Resource>,
- engine: TE,
-}
-
/// Represents one of potentially many alternate bodies in a template.
#[derive(Debug)]
diff --git a/src/serde_impl.rs b/src/serde_impl.rs
index c377dc9..f8698b5 100644
--- a/src/serde_impl.rs
+++ b/src/serde_impl.rs
@@ -1,6 +1,5 @@
use std::{
collections::HashMap,
- sync::Arc,
path::Path
};
@@ -21,7 +20,6 @@ use super::{
TemplateEngine,
CwdBaseDir,
PathRebaseable,
- InnerTemplate,
Subject,
UnsupportedPathError,
};
@@ -111,7 +109,7 @@ impl<TE> TemplateBase<TE>
let fut = loading_fut
.map_err(Error::from)
.map(|(embeddings, attachments)| {
- let inner = InnerTemplate {
+ Template {
template_name,
base_dir,
subject,
@@ -119,9 +117,7 @@ impl<TE> TemplateBase<TE>
embeddings,
attachments,
engine
- };
-
- Template { inner: Arc::new(inner) }
+ }
});
Either::A(fut)