use std::any::Any;
use crate::types::job_id::JobID;
use super::callback_mgr::callback_msg::{CallbackMsg, CallbackMsgBase};
#[derive(Clone, Copy, Debug, Default)]
pub struct ConnectedCallback {
base: CallbackMsgBase,
}
impl ConnectedCallback {
pub fn new() -> Self {
Self {
base: CallbackMsgBase::new(),
}
}
}
impl CallbackMsg for ConnectedCallback {
fn job_id(&self) -> JobID {
self.base.job_id()
}
fn set_job_id(&mut self, id: JobID) {
self.base.set_job_id(id);
}
fn as_any(&self) -> &dyn Any {
self
}
fn as_any_mut(&mut self) -> &mut dyn Any {
self
}
}
#[derive(Clone, Copy, Debug, Default)]
pub struct DisconnectedCallback {
base: CallbackMsgBase,
user_initiated: bool,
}
impl DisconnectedCallback {
pub fn new(user_initiated: bool) -> Self {
Self {
base: CallbackMsgBase::new(),
user_initiated,
}
}
pub fn user_initiated(&self) -> bool {
self.user_initiated
}
}
impl CallbackMsg for DisconnectedCallback {
fn job_id(&self) -> JobID {
self.base.job_id()
}
fn set_job_id(&mut self, id: JobID) {
self.base.set_job_id(id);
}
fn as_any(&self) -> &dyn Any {
self
}
fn as_any_mut(&mut self) -> &mut dyn Any {
self
}
}