#tower-middleware #filter #tower #middleware #tower-service #fallthrough

tower-fallthrough-filter

一个Tower中间件,当过滤器匹配时将控制权交给定义的服务,否则将跳过到内部服务

3个版本

0.0.3 2024年3月2日
0.0.2 2024年2月29日
0.0.1 2024年2月29日

#483 in 异步

Download history 19/week @ 2024-03-08 2/week @ 2024-03-15 44/week @ 2024-03-29 12/week @ 2024-04-05 36/week @ 2024-04-12

每月89次下载

MIT许可协议

21KB
412

Tower Fallthrough Filter

是否曾想过过滤Tower服务,但又不希望在过滤器不匹配时终止请求?现在可以了!

安装

将以下内容添加到你的 Cargo.toml

[dependencies]
tower-fallthrough-filter = "*"

或者使用 cargo 命令添加

cargo add tower-fallthrough-filter

使用示例

use tower_fallthrough_filter::{Filter, FilterLayer};

#[derive(Clone)]
struct MyFilter;

impl<T> Filter<T> for MyFilter {
    fn filter(&self, _: T) -> bool {
        // This can be any logic you want
        // and can depend on some state stored
        // in the filter itself.

        // When this function returns true, my_service
        // will be called, otherwise the request will
        // fall through to the next service.
        some_buisness_logic()
    }
}

let my_service = MyService::new();
let layer = FilterLayer::new(MyFilter, my_service);

// Now you can use the layer as a normal Tower Layer

查看示例文件夹以获取更多示例。

依赖关系

~1–1.4MB
~25K SLoC