Change populate_next_and_previous_page

Replace `populate_next_and_previous_page` with `populate_siblings`
This commit is contained in:
Daniel Sockwell 2018-07-30 22:36:03 -04:00
parent 97f5065259
commit 77ac196f46
4 changed files with 11 additions and 11 deletions

View file

@ -11,7 +11,7 @@ use std::collections::HashMap;
use config::Config; use config::Config;
use tera::Tera; use tera::Tera;
use front_matter::{SortBy, InsertAnchor}; use front_matter::{SortBy, InsertAnchor};
use content::{Page, sort_pages, populate_previous_and_next_pages}; use content::{Page, sort_pages, populate_siblings};
fn create_pages(number: usize, sort_by: SortBy) -> Vec<Page> { fn create_pages(number: usize, sort_by: SortBy) -> Vec<Page> {
@ -128,17 +128,17 @@ fn bench_sorting_order(b: &mut test::Bencher) {
} }
#[bench] #[bench]
fn bench_populate_previous_and_next_pages(b: &mut test::Bencher) { fn bench_populate_siblings(b: &mut test::Bencher) {
let pages = create_pages(250, SortBy::Order); let pages = create_pages(250, SortBy::Order);
let (sorted_pages, _) = sort_pages(pages, SortBy::Order); let (sorted_pages, _) = sort_pages(pages, SortBy::Order);
b.iter(|| populate_previous_and_next_pages(&sorted_pages.clone())); b.iter(|| populate_siblings(&sorted_pages.clone()));
} }
#[bench] #[bench]
fn bench_page_render_html(b: &mut test::Bencher) { fn bench_page_render_html(b: &mut test::Bencher) {
let pages = create_pages(10, SortBy::Order); let pages = create_pages(10, SortBy::Order);
let (mut sorted_pages, _) = sort_pages(pages, SortBy::Order); let (mut sorted_pages, _) = sort_pages(pages, SortBy::Order);
sorted_pages = populate_previous_and_next_pages(&sorted_pages); sorted_pages = populate_siblings(&sorted_pages);
let config = Config::default(); let config = Config::default();
let mut tera = Tera::default(); let mut tera = Tera::default();

View file

@ -26,4 +26,4 @@ mod sorting;
pub use file_info::FileInfo; pub use file_info::FileInfo;
pub use page::Page; pub use page::Page;
pub use section::Section; pub use section::Section;
pub use sorting::{sort_pages, populate_previous_and_next_pages}; pub use sorting::{sort_pages, populate_siblings};

View file

@ -53,7 +53,7 @@ pub fn sort_pages(pages: Vec<Page>, sort_by: SortBy) -> (Vec<Page>, Vec<Page>) {
/// Horribly inefficient way to set previous and next on each pages that skips drafts /// Horribly inefficient way to set previous and next on each pages that skips drafts
/// So many clones /// So many clones
pub fn populate_previous_and_next_pages(input: &[Page], sort_by: SortBy) -> Vec<Page> { pub fn populate_siblings(input: &[Page], sort_by: SortBy) -> Vec<Page> {
let mut res = Vec::with_capacity(input.len()); let mut res = Vec::with_capacity(input.len());
// The input is already sorted // The input is already sorted
@ -140,7 +140,7 @@ pub fn populate_previous_and_next_pages(input: &[Page], sort_by: SortBy) -> Vec<
mod tests { mod tests {
use front_matter::{PageFrontMatter, SortBy}; use front_matter::{PageFrontMatter, SortBy};
use page::Page; use page::Page;
use super::{sort_pages, populate_previous_and_next_pages}; use super::{sort_pages, populate_siblings};
fn create_page_with_date(date: &str) -> Page { fn create_page_with_date(date: &str) -> Page {
let mut front_matter = PageFrontMatter::default(); let mut front_matter = PageFrontMatter::default();
@ -208,13 +208,13 @@ mod tests {
} }
#[test] #[test]
fn can_populate_previous_and_next_pages() { fn can_populate_siblings() {
let input = vec![ let input = vec![
create_page_with_weight(1), create_page_with_weight(1),
create_page_with_weight(2), create_page_with_weight(2),
create_page_with_weight(3), create_page_with_weight(3),
]; ];
let pages = populate_previous_and_next_pages(&input, SortBy::Weight); let pages = populate_siblings(&input, SortBy::Weight);
assert!(pages[0].clone().lighter.is_none()); assert!(pages[0].clone().lighter.is_none());
assert!(pages[0].clone().heavier.is_some()); assert!(pages[0].clone().heavier.is_some());

View file

@ -36,7 +36,7 @@ use config::{Config, get_config};
use utils::fs::{create_file, copy_directory, create_directory, ensure_directory_exists}; use utils::fs::{create_file, copy_directory, create_directory, ensure_directory_exists};
use utils::templates::{render_template, rewrite_theme_paths}; use utils::templates::{render_template, rewrite_theme_paths};
use utils::net::get_available_port; use utils::net::get_available_port;
use content::{Page, Section, populate_previous_and_next_pages, sort_pages}; use content::{Page, Section, populate_siblings, sort_pages};
use templates::{GUTENBERG_TERA, global_fns, render_redirect_template}; use templates::{GUTENBERG_TERA, global_fns, render_redirect_template};
use front_matter::{SortBy, InsertAnchor}; use front_matter::{SortBy, InsertAnchor};
use taxonomies::{Taxonomy, find_taxonomies}; use taxonomies::{Taxonomy, find_taxonomies};
@ -401,7 +401,7 @@ impl Site {
} }
let pages = mem::replace(&mut section.pages, vec![]); let pages = mem::replace(&mut section.pages, vec![]);
let (sorted_pages, cannot_be_sorted_pages) = sort_pages(pages, section.meta.sort_by); let (sorted_pages, cannot_be_sorted_pages) = sort_pages(pages, section.meta.sort_by);
section.pages = populate_previous_and_next_pages(&sorted_pages, section.meta.sort_by); section.pages = populate_siblings(&sorted_pages, section.meta.sort_by);
section.ignored_pages = cannot_be_sorted_pages; section.ignored_pages = cannot_be_sorted_pages;
} }
} }