From 9c922cf26ba047b80bce5c192a75cc5958caf442 Mon Sep 17 00:00:00 2001 From: Jaime Valdemoros Date: Sun, 7 Jan 2018 19:45:28 +0000 Subject: [PATCH] Add LinkPreprocessor::new constructor --- src/book/mod.rs | 19 +++++++------------ src/preprocess/links.rs | 8 +++++++- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/book/mod.rs b/src/book/mod.rs index eac350e3..e0ab9bf7 100644 --- a/src/book/mod.rs +++ b/src/book/mod.rs @@ -224,9 +224,8 @@ impl MDBook { let temp_dir = TempDir::new("mdbook")?; - let replace_all_preprocessor = preprocess::links::LinkPreprocessor { - src_dir: self.source_dir(), - }; + let src_dir = self.source_dir(); + let replace_all_preprocessor = preprocess::links::LinkPreprocessor::new(src_dir); replace_all_preprocessor.run(&mut self.book)?; @@ -341,11 +340,9 @@ fn determine_preprocessors(md_book: &MDBook) -> Vec> { for key in preprocess_array.iter() { match key.as_str() { Some(key) if key == "links" => { - let link_preprocessor = preprocess::links::LinkPreprocessor { - src_dir: md_book.source_dir(), - }; - - preprocessors.push(Box::new(link_preprocessor )) + let src_dir = md_book.source_dir(); + let link_preprocessor = preprocess::links::LinkPreprocessor::new(src_dir); + preprocessors.push(Box::new(link_preprocessor)) } _ => {} } @@ -353,10 +350,8 @@ fn determine_preprocessors(md_book: &MDBook) -> Vec> { } if preprocessors.is_empty() { - let link_preprocessor = preprocess::links::LinkPreprocessor { - src_dir: md_book.source_dir(), - }; - + let src_dir = md_book.source_dir(); + let link_preprocessor = preprocess::links::LinkPreprocessor::new(src_dir); preprocessors.push(Box::new(link_preprocessor)) } diff --git a/src/preprocess/links.rs b/src/preprocess/links.rs index 5a99f629..7058c07d 100644 --- a/src/preprocess/links.rs +++ b/src/preprocess/links.rs @@ -11,7 +11,13 @@ use book::{Book, BookItem}; const ESCAPE_CHAR: char = '\\'; pub struct LinkPreprocessor { - pub src_dir: PathBuf + src_dir: PathBuf +} + +impl LinkPreprocessor { + pub fn new>(src_dir: P) -> Self { + LinkPreprocessor { src_dir: src_dir.into() } + } } impl Preprocessor for LinkPreprocessor {