X-Git-Url: https://git.r.bdr.sh/rbdr/olden-mail/blobdiff_plain/8ef3566a8961e2305ab701fce160de0dba1d050c..8ab8739c55711caa07b8d7540309cb48cc892369:/src/middleware/mod.rs 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; +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; + fn server_message(&mut self, input: &[u8]) -> Vec; +} + +pub fn get_middleware() -> Arc>>> { + Arc::new(Mutex::new(vec![ + Box::new(FindMailboxesCompatibility::new()), + ])) +}