gveditor_core/
configuration.rs1use 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}