aboutsummaryrefslogtreecommitdiff
path: root/src/middleware/mod.rs
diff options
context:
space:
mode:
authorRuben Beltran del Rio <git@r.bdr.sh>2025-01-27 21:50:05 +0100
committerRuben Beltran del Rio <git@r.bdr.sh>2025-01-27 21:50:05 +0100
commit8ab8739c55711caa07b8d7540309cb48cc892369 (patch)
treea249dbe9dde23931e775520378fac76d88834499 /src/middleware/mod.rs
parent8ef3566a8961e2305ab701fce160de0dba1d050c (diff)
Adjust middleware to modify responses
Diffstat (limited to 'src/middleware/mod.rs')
-rw-r--r--src/middleware/mod.rs16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/middleware/mod.rs b/src/middleware/mod.rs
index da7e64a..b9685bf 100644
--- a/src/middleware/mod.rs
+++ b/src/middleware/mod.rs
@@ -1,8 +1,16 @@
mod find_mailboxes_compatibility;
-use find_mailboxes_compatibility::middleware as find_mailboxes_compatibility_middleware;
+use find_mailboxes_compatibility::FindMailboxesCompatibility;
-type Middleware = fn(&[u8]) -> Vec<u8>;
+use std::sync::{Arc, Mutex};
-pub const CLIENT_MIDDLEWARE: [Middleware; 1] = [find_mailboxes_compatibility_middleware];
-pub const SERVER_MIDDLEWARE: [Middleware; 0] = [];
+pub trait Middleware: Sync + Send {
+ fn client_message(&mut self, input: &[u8]) -> Vec<u8>;
+ fn server_message(&mut self, input: &[u8]) -> Vec<u8>;
+}
+
+pub fn get_middleware() -> Arc<Mutex<Vec<Box<dyn Middleware>>>> {
+ Arc::new(Mutex::new(vec![
+ Box::new(FindMailboxesCompatibility::new()),
+ ]))
+}