@@ -6,29 +6,32 @@ use axum::{
66 handler:: Handler as AxumHandler , middleware, response:: Redirect , routing:: get,
77 routing:: MethodRouter , Router as AxumRouter ,
88} ;
9+ use axum_extra:: routing:: RouterExt ;
910use iron:: middleware:: Handler ;
1011use router:: Router as IronRouter ;
1112use std:: { borrow:: Cow , collections:: HashSet , convert:: Infallible } ;
1213use tracing:: instrument;
1314
1415#[ instrument( skip_all) ]
15- fn get_static < H , T , B > ( handler : H ) -> MethodRouter < B , Infallible >
16+ fn get_static < H , T , S , B > ( handler : H ) -> MethodRouter < S , B , Infallible >
1617where
17- H : AxumHandler < T , B > ,
18+ H : AxumHandler < T , S , B > ,
1819 B : Send + ' static + hyper:: body:: HttpBody ,
1920 T : ' static ,
21+ S : Clone + Send + Sync + ' static ,
2022{
2123 get ( handler) . route_layer ( middleware:: from_fn ( |request, next| async {
2224 request_recorder ( request, next, Some ( "static resource" ) ) . await
2325 } ) )
2426}
2527
2628#[ instrument( skip_all) ]
27- fn get_internal < H , T , B > ( handler : H ) -> MethodRouter < B , Infallible >
29+ fn get_internal < H , T , S , B > ( handler : H ) -> MethodRouter < S , B , Infallible >
2830where
29- H : AxumHandler < T , B > ,
31+ H : AxumHandler < T , S , B > ,
3032 B : Send + ' static + hyper:: body:: HttpBody ,
3133 T : ' static ,
34+ S : Clone + Send + Sync + ' static ,
3235{
3336 get ( handler) . route_layer ( middleware:: from_fn ( |request, next| async {
3437 request_recorder ( request, next, None ) . await
@@ -41,64 +44,64 @@ pub(super) fn build_axum_routes() -> AxumRouter {
4144 // must live at the site root:
4245 // https://developers.google.com/search/reference/robots_txt#handling-http-result-codes
4346 // https://support.google.com/webmasters/answer/183668?hl=en
44- . route (
47+ . route_with_tsr (
4548 "/robots.txt" ,
4649 get_static ( || async { Redirect :: permanent ( "/-/static/robots.txt" ) } ) ,
4750 )
48- . route (
51+ . route_with_tsr (
4952 "/favicon.ico" ,
5053 get_static ( || async { Redirect :: permanent ( "/-/static/favicon.ico" ) } ) ,
5154 )
52- . route (
55+ . route_with_tsr (
5356 "/sitemap.xml" ,
5457 get_internal ( super :: sitemap:: sitemapindex_handler) ,
5558 )
56- . route (
59+ . route_with_tsr (
5760 "/-/sitemap/:letter/sitemap.xml" ,
5861 get_internal ( super :: sitemap:: sitemap_handler) ,
5962 )
60- . route (
63+ . route_with_tsr (
6164 "/about/builds" ,
6265 get_internal ( super :: sitemap:: about_builds_handler) ,
6366 )
64- . route (
67+ . route_with_tsr (
6568 "/about/metrics" ,
6669 get_internal ( super :: metrics:: metrics_handler) ,
6770 )
68- . route ( "/about" , get_internal ( super :: sitemap:: about_handler) )
69- . route (
71+ . route_with_tsr ( "/about" , get_internal ( super :: sitemap:: about_handler) )
72+ . route_with_tsr (
7073 "/about/:subpage" ,
7174 get_internal ( super :: sitemap:: about_handler) ,
7275 )
73- . route (
76+ . route_with_tsr (
7477 "/releases" ,
7578 get_internal ( super :: releases:: recent_releases_handler) ,
7679 )
77- . route (
80+ . route_with_tsr (
7881 "/releases/recent/:page" ,
7982 get_internal ( super :: releases:: recent_releases_handler) ,
8083 )
81- . route (
84+ . route_with_tsr (
8285 "/releases/stars" ,
8386 get_internal ( super :: releases:: releases_by_stars_handler) ,
8487 )
85- . route (
88+ . route_with_tsr (
8689 "/releases/stars/:page" ,
8790 get_internal ( super :: releases:: releases_by_stars_handler) ,
8891 )
89- . route (
92+ . route_with_tsr (
9093 "/releases/recent-failures" ,
9194 get_internal ( super :: releases:: releases_recent_failures_handler) ,
9295 )
93- . route (
96+ . route_with_tsr (
9497 "/releases/recent-failures/:page" ,
9598 get_internal ( super :: releases:: releases_recent_failures_handler) ,
9699 )
97- . route (
100+ . route_with_tsr (
98101 "/releases/failures" ,
99102 get_internal ( super :: releases:: releases_failures_by_stars_handler) ,
100103 )
101- . route (
104+ . route_with_tsr (
102105 "/releases/failures/:page" ,
103106 get_internal ( super :: releases:: releases_failures_by_stars_handler) ,
104107 )
0 commit comments