monorepo/kifu/gtk/src/lib.rs

22 lines
521 B
Rust
Raw Normal View History

pub mod ui;
use kifu_core::{CoreApp, CoreRequest, CoreResponse};
2023-04-07 01:52:39 +00:00
use std::sync::Arc;
use tokio::runtime::Runtime;
#[derive(Clone)]
pub struct CoreApi {
pub gtk_tx: gtk::glib::Sender<CoreResponse>,
2023-04-07 01:52:39 +00:00
pub rt: Arc<Runtime>,
pub core: CoreApp,
}
impl CoreApi {
pub fn dispatch(&self, request: CoreRequest) {
2023-04-07 01:52:39 +00:00
self.rt.spawn({
let gtk_tx = self.gtk_tx.clone();
let core = self.core.clone();
async move { gtk_tx.send(core.dispatch(request).await) }
});
}
}