21 lines
658 B
Rust
21 lines
658 B
Rust
use shared::names::Site;
|
|
|
|
pub fn previous_url(source_url: &String, names: &Vec<Site>) -> Option<String> {
|
|
match names.iter().position(|r| &r.url == source_url) {
|
|
Some(index) if index == 0 => Some(names[names.len() - 1].url.to_string()),
|
|
Some(index) => Some(names[index - 1].url.to_string()),
|
|
None => None,
|
|
}
|
|
}
|
|
|
|
pub fn next_url(source_url: &String, names: &Vec<Site>) -> Option<String> {
|
|
// this is gay
|
|
match names.iter().position(|r| &r.url == source_url) {
|
|
Some(index) if index == names.len() - 1 => Some(names[0].url.to_string()),
|
|
Some(index) => Some(names[index + 1].url.to_string()),
|
|
None => None,
|
|
}
|
|
}
|
|
|
|
// TODO: previous_name, next_name
|