mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-20 03:18:06 +08:00
* Implement proper editor level async message handler * Take application_io and wake callback as Editor::new arguments * Rename AsyncMessage -> FutureMessage * add DesktopWrapperMessage::Wake --------- Co-authored-by: Timon <me@timon.zip>
17 lines
544 B
Rust
17 lines
544 B
Rust
use crate::messages::future::MessageFuture;
|
|
use crate::messages::prelude::*;
|
|
|
|
#[impl_message(Message, Future)]
|
|
#[derive(derivative::Derivative, Clone, serde::Serialize, serde::Deserialize)]
|
|
#[derivative(Debug, PartialEq)]
|
|
pub enum FutureMessage {
|
|
/// Spawn `future`; its resolved [`Message`] re-enters the dispatcher on the next tick.
|
|
Await {
|
|
#[serde(skip, default)]
|
|
#[derivative(Debug = "ignore", PartialEq = "ignore")]
|
|
future: MessageFuture,
|
|
},
|
|
/// Sent by a wake callback to nudge an idle event loop into a dispatch tick.
|
|
Wake,
|
|
}
|