use std::time::Duration; use mlua::prelude::*; use tokio::{ sync::mpsc::{UnboundedReceiver, UnboundedSender}, time::Instant, }; use crate::{AsyncValues, ThreadId}; pub type MessageSender = UnboundedSender; pub type MessageReceiver = UnboundedReceiver; pub enum Message { Resume(ThreadId, LuaResult), Cancel(ThreadId), Sleep(ThreadId, Instant, Duration), WriteError(LuaError), WriteStdout(Vec), WriteStderr(Vec), }