条件路由
作者: jkassis创建于 2025年10月17日更新于 2025年10月17日
标签feature
您的功能请求是否与问题有关?请描述。
请描述您想要的解决方案
从示例中,我们有这个函数:
pub fn assets_filter() -> BoxedFilter<(impl Reply,)> {
warp::path("assets")
.and(warp::fs::dir("./assets"))
.boxed()
}我想能够做到这样的事情:
pub fn assets_filter() -> BoxedFilter<(impl Reply,)> {
if let Some(optional_filter) = optional_filter {
warp::path("assets")
.and(warp::fs::dir("./assets"))
.or(optional_filter)
.boxed()
} else {
warp::path("assets").and(warp::fs::dir("./assets")).boxed()
}
}请描述您考虑过的其他方案
我尝试了几乎所有的方法来让类型正常工作。虽然返回 BoxedFilter<(impl Reply,)> 是可以的,但从函数体中返回两个不同的变体是不可接受的。
内容来源: seanmonstar/warp