diff options
| author | Ruben Beltran del Rio <git@r.bdr.sh> | 2025-01-27 21:50:05 +0100 |
|---|---|---|
| committer | Ruben Beltran del Rio <git@r.bdr.sh> | 2025-01-27 21:50:05 +0100 |
| commit | 8ab8739c55711caa07b8d7540309cb48cc892369 (patch) | |
| tree | a249dbe9dde23931e775520378fac76d88834499 /src/middleware/mod.rs | |
| parent | 8ef3566a8961e2305ab701fce160de0dba1d050c (diff) | |
Adjust middleware to modify responses
Diffstat (limited to 'src/middleware/mod.rs')
| -rw-r--r-- | src/middleware/mod.rs | 16 |
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()), + ])) +} |