2023-07-01 04:43:18 +00:00
|
|
|
use shared::names::Site;
|
2023-06-30 02:45:41 +00:00
|
|
|
|
2023-06-30 10:47:46 +00:00
|
|
|
pub fn previous_url(source_url: &String, names: &Vec<Site>) -> Option<String> {
|
2023-07-01 04:43:18 +00:00
|
|
|
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()),
|
2023-06-30 02:45:41 +00:00
|
|
|
None => None,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-06-30 10:47:46 +00:00
|
|
|
pub fn next_url(source_url: &String, names: &Vec<Site>) -> Option<String> {
|
2023-06-30 02:45:41 +00:00
|
|
|
// this is gay
|
2023-07-01 04:43:18 +00:00
|
|
|
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()),
|
2023-06-30 02:45:41 +00:00
|
|
|
None => None,
|
|
|
|
}
|
|
|
|
}
|
2023-06-30 10:47:46 +00:00
|
|
|
|
2023-07-05 09:10:31 +00:00
|
|
|
pub fn previous_name(source_url: &String, names: &Vec<Site>) -> Option<String> {
|
|
|
|
match names.iter().position(|r| &r.url == source_url) {
|
|
|
|
Some(index) if index == 0 => match &names[names.len() - 1].name {
|
|
|
|
Some(name) => Some(name.clone()),
|
|
|
|
None => previous_url(source_url, names),
|
|
|
|
},
|
|
|
|
Some(index) => match &names[index - 1].name {
|
|
|
|
Some(name) => Some(name.clone()),
|
|
|
|
None => previous_url(source_url, names),
|
|
|
|
},
|
|
|
|
None => None,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
pub fn next_name(source_url: &String, names: &Vec<Site>) -> Option<String> {
|
|
|
|
match names.iter().position(|r| &r.url == source_url) {
|
2023-07-08 06:03:29 +00:00
|
|
|
Some(index) if index == names.len() - 1 => match &names[0].name {
|
2023-07-05 09:10:31 +00:00
|
|
|
Some(name) => Some(name.clone()),
|
|
|
|
None => next_url(source_url, names),
|
|
|
|
},
|
|
|
|
Some(index) => match &names[index + 1].name {
|
|
|
|
Some(name) => Some(name.clone()),
|
|
|
|
None => next_url(source_url, names),
|
|
|
|
},
|
|
|
|
None => None,
|
|
|
|
}
|
|
|
|
}
|