]> git.proxmox.com Git - proxmox-backup.git/blobdiff - src/api2.rs
use const api definitions
[proxmox-backup.git] / src / api2.rs
index 00514fbe96799dd7ceb12bd089f5fac05431160a..315744e52c8cbe72ea1e1a8b71602c0045c0d475 100644 (file)
@@ -10,19 +10,20 @@ mod access;
 
 use crate::api_schema::router::*;
 
-pub fn router() -> Router {
+const NODES_ROUTER: Router = Router::new()
+    .match_all("node", &node::ROUTER);
 
-    let nodes = Router::new()
-        .match_all("node", node::router());
+pub const SUBDIRS: SubdirMap = &[
+    ("access", &access::ROUTER),
+    ("admin", &admin::ROUTER),
+    ("backup", &backup::ROUTER),
+    ("config", &config::ROUTER),
+    ("nodes", &NODES_ROUTER),
+    ("reader", &reader::ROUTER),
+    ("subscription", &subscription::ROUTER),
+    ("version", &version::ROUTER),
+];
 
-    Router::new()
-        .subdir("access", access::router())
-        .subdir("admin", admin::router())
-        .subdir("backup", backup::router())
-        .subdir("reader", reader::router())
-        .subdir("config", config::router())
-        .subdir("nodes", nodes)
-        .subdir("subscription", subscription::router())
-        .subdir("version", version::router())
-        .list_subdirs()
-}
+pub const ROUTER: Router = Router::new()
+    .get(&list_subdirs_api_method!(SUBDIRS))
+    .subdirs(SUBDIRS);