diff options
author | Philipp Korber <philippkorber@gmail.com> | 2018-11-22 13:15:46 +0100 |
---|---|---|
committer | Philipp Korber <philippkorber@gmail.com> | 2018-11-22 13:15:46 +0100 |
commit | f6c2b38e31d2557a7edfa5b5d9c0332816e728d8 (patch) | |
tree | 0d6e020a30ecddfceba2d0622ae2b9ae80a0bef2 | |
parent | 10962b6f553b377b51e80b81a29ac8b7f34bd579 (diff) |
chore(new-api) removed no longer needed InnerTemplate impl. detail
-rw-r--r-- | src/lib.rs | 46 | ||||
-rw-r--r-- | src/serde_impl.rs | 8 |
2 files changed, 18 insertions, 36 deletions
@@ -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) |