从函数中获取所有参数

Get all arguments from function

我目前正在开发网络服务器应用程序:

mod rustex;
use rustex::Response;

fn main() {
    let bind_address = "127.0.0.1:8080";

    let mut app = rustex::App::new(bind_address);

    app.get("/hello", || -> Response {
        Response {
            data: String::from("hello"),
            status: 200,
        }
    });

    app.run_server();
}

我的 .get() 方法如下所示:

pub fn get(&mut self, path: &str, handler: fn() -> Response) {
    self.routes.insert(
        path.to_owned(),
        RouteOption {
            handler,
            method: String::from("GET"),
        },
    );
}

我想知道我是否可以在内部传递多个函数.get() 并获得它的列表。 我 javascript 你会做这样的事情:

function get(path, ...handlers) {
   //handlers is an array with your arguments
}

这是可能的还是我需要传递一个数组作为第二个参数?

我想要的是传递尽可能多的处理程序,例如:

    app.get("/hello", handler1, handler2, ....);

rust 中不允许使用可变参数(根据 rust 1.63):考虑改为共享切片:

pub fn get(&mut self, path: &str, handlers: &[fn() -> Response]) {
    for handler in handlers.into_iter() {
        self.routes.insert(
            path.to_owned(),
            RouteOption {
                handler,
                method: String::from("GET"),
            },
        );
    }
}