24 lines
666 B
Rust
24 lines
666 B
Rust
use crate::backend::{BackendEvent};
|
|
use crate::state::State;
|
|
use crate::tasks::{connector, input_device};
|
|
use std::rc::Rc;
|
|
|
|
pub struct BackendEventHandler {
|
|
pub state: Rc<State>,
|
|
}
|
|
|
|
impl BackendEventHandler {
|
|
pub async fn handle_events(&mut self) {
|
|
loop {
|
|
let event = self.state.backend_events.pop().await;
|
|
self.handle_event(event);
|
|
}
|
|
}
|
|
|
|
fn handle_event(&mut self, event: BackendEvent) {
|
|
match event {
|
|
BackendEvent::NewConnector(connector) => connector::handle(&self.state, &connector),
|
|
BackendEvent::NewInputDevice(s) => input_device::handle(&self.state, s),
|
|
}
|
|
}
|
|
}
|