aboutsummaryrefslogtreecommitdiff
path: root/src/middleware/mod.rs
blob: a0bc50f2a5df24613e9e9a10a9102684446cc997 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
mod find_mailboxes_compatibility;

use find_mailboxes_compatibility::FindMailboxesCompatibility;

use std::sync::{Arc, Mutex};

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() -> Arc<Mutex<Vec<Box<dyn Middleware>>>> {
    Arc::new(Mutex::new(vec![
        Box::new(FindMailboxesCompatibility::new()),
    ]))
}