gveditor_core/
configuration.rs

1use gveditor_core_api::messaging::Messages;
2use std::sync::Arc;
3use tokio::sync::mpsc::{Receiver, Sender};
4use tokio::sync::Mutex;
5
6use crate::handlers::TransportHandler;
7
8pub type Handler = Arc<Mutex<Box<dyn TransportHandler + Send + Sync>>>;
9
10pub struct Configuration {
11    pub handler: Handler,
12    pub sender: Sender<Messages>,
13    pub receiver: Option<Receiver<Messages>>,
14}
15
16impl Configuration {
17    pub fn new(
18        handler: Box<dyn TransportHandler + Send + Sync>,
19        sender: Sender<Messages>,
20        receiver: Receiver<Messages>,
21    ) -> Self {
22        Self {
23            handler: Arc::new(Mutex::new(handler)),
24            sender,
25            receiver: Some(receiver),
26        }
27    }
28}