use crate::exec::ExecEvent;
use crate::Error;
use derive_more::derive::From;
use std::sync::Arc;
#[derive(Debug, Clone, From)]
pub enum HubEvent {
Message(Arc<str>),
Error {
error: Arc<Error>,
},
#[from]
Executor(ExecEvent),
LuaPrint(Arc<str>),
DoExecRedo,
Quit,
}
impl From<String> for HubEvent {
fn from(s: String) -> Self {
HubEvent::Message(s.into())
}
}
impl From<&str> for HubEvent {
fn from(s: &str) -> Self {
HubEvent::Message(s.into())
}
}
impl From<&String> for HubEvent {
fn from(s: &String) -> Self {
HubEvent::Message(s.as_str().into())
}
}
impl From<Error> for HubEvent {
fn from(e: Error) -> Self {
HubEvent::Error { error: Arc::new(e) }
}
}