Previous behaviour of populate was correct so reverting back to it

This commit is contained in:
Vincent Prouillet 2017-07-05 12:04:00 +09:00
parent 998283d17c
commit 0b38568015

View file

@ -43,20 +43,20 @@ pub fn populate_previous_and_next_pages(input: Vec<Page>) -> Vec<Page> {
let mut new_page = input[i].clone(); let mut new_page = input[i].clone();
if i > 0 { if i > 0 {
let mut previous_page = input[i - 1].clone(); let mut next_page = input[i - 1].clone();
// Remove prev/next otherwise we serialise the whole thing...
previous_page.previous = None;
previous_page.next = None;
new_page.previous = Some(Box::new(previous_page));
}
if i < input.len() - 1 {
let mut next_page = input[i + 1].clone();
// Remove prev/next otherwise we serialise the whole thing... // Remove prev/next otherwise we serialise the whole thing...
next_page.previous = None; next_page.previous = None;
next_page.next = None; next_page.next = None;
new_page.next = Some(Box::new(next_page)); new_page.next = Some(Box::new(next_page));
} }
if i < input.len() - 1 {
let mut previous_page = input[i + 1].clone();
// Remove prev/next otherwise we serialise the whole thing...
previous_page.previous = None;
previous_page.next = None;
new_page.previous = Some(Box::new(previous_page));
}
res.push(new_page); res.push(new_page);
} }
@ -164,17 +164,17 @@ mod tests {
]; ];
let pages = populate_previous_and_next_pages(input); let pages = populate_previous_and_next_pages(input);
assert!(pages[0].clone().previous.is_none()); assert!(pages[0].clone().next.is_none());
assert!(pages[0].clone().next.is_some()); assert!(pages[0].clone().previous.is_some());
assert_eq!(pages[0].clone().next.unwrap().meta.order.unwrap(), 2); assert_eq!(pages[0].clone().previous.unwrap().meta.order.unwrap(), 2);
assert!(pages[1].clone().next.is_some()); assert!(pages[1].clone().next.is_some());
assert!(pages[1].clone().previous.is_some()); assert!(pages[1].clone().previous.is_some());
assert_eq!(pages[1].clone().previous.unwrap().meta.order.unwrap(), 1); assert_eq!(pages[1].clone().previous.unwrap().meta.order.unwrap(), 3);
assert_eq!(pages[1].clone().next.unwrap().meta.order.unwrap(), 3); assert_eq!(pages[1].clone().next.unwrap().meta.order.unwrap(), 1);
assert!(pages[2].clone().next.is_none()); assert!(pages[2].clone().next.is_some());
assert!(pages[2].clone().previous.is_some()); assert!(pages[2].clone().previous.is_none());
assert_eq!(pages[2].clone().previous.unwrap().meta.order.unwrap(), 2); assert_eq!(pages[2].clone().next.unwrap().meta.order.unwrap(), 2);
} }
} }