diff options
Diffstat (limited to 'src/modules/directory.rs')
| -rw-r--r-- | src/modules/directory.rs | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/src/modules/directory.rs b/src/modules/directory.rs index 4179175..23be14c 100644 --- a/src/modules/directory.rs +++ b/src/modules/directory.rs @@ -11,22 +11,22 @@ pub fn module(router: &mut windmark::router::Router) { "# Directory\n\nA map of all publicly available routes on this \ Gemini capsule\n\n{}", { - let mut lines = (*crate::route::ROUTES.lock().unwrap()) + let available_routes = crate::route::ROUTES.lock().unwrap(); + let mut routes_with_hits: Vec<_> = available_routes .iter() - .map(|(r, d)| format!("=> {} {}", r, d.description)) - .collect::<Vec<_>>(); - let standard_transform = |route: &str| { - route.replace("=> ", "").split(' ').collect::<Vec<_>>()[0] - .to_string() - }; + .map(|(r, d)| { + let hits = hits_from(r); + (hits, format!("=> {} {}", r, d.description)) + }) + .collect(); - lines.sort_by(|a, b| { - hits_from(&standard_transform(a)) - .cmp(&hits_from(&standard_transform(b))) - }); - lines.reverse(); + routes_with_hits.sort_by(|a, b| b.0.cmp(&a.0)); - lines.join("\n") + routes_with_hits + .into_iter() + .map(|(_, line)| line) + .collect::<Vec<_>>() + .join("\n") } ), &context, |