Browse Source

Change populate_next_and_previous_page

Replace `populate_next_and_previous_page` with `populate_siblings`
index-subcmd
Daniel Sockwell 6 years ago
parent
commit
77ac196f46
4 changed files with 11 additions and 11 deletions
  1. +4
    -4
      components/content/benches/all.rs
  2. +1
    -1
      components/content/src/lib.rs
  3. +4
    -4
      components/content/src/sorting.rs
  4. +2
    -2
      components/site/src/lib.rs

+ 4
- 4
components/content/benches/all.rs 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();


+ 1
- 1
components/content/src/lib.rs 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};

+ 4
- 4
components/content/src/sorting.rs 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());


+ 2
- 2
components/site/src/lib.rs 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;
} }
} }


Loading…
Cancel
Save