aboutsummaryrefslogtreecommitdiff
path: root/src/modules/directory.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/directory.rs')
-rw-r--r--src/modules/directory.rs26
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,