use tokio::sync::oneshot::Sender;
use crate::Callback;
use crate::ember::Status;
use crate::parameters::networking::handler::{EnergyScanResult, NetworkFound};
#[derive(Debug)]
pub enum Message {
Callback(Box<Callback>),
NetworkScan(Sender<Vec<NetworkFound>>),
ChannelScan(Sender<Vec<EnergyScanResult>>),
Sent {
tag: u8,
sender: Sender<Result<Status, u8>>,
},
Terminate,
}
impl From<Box<Callback>> for Message {
fn from(callback: Box<Callback>) -> Self {
Self::Callback(callback)
}
}
impl From<Callback> for Message {
fn from(callback: Callback) -> Self {
Self::from(Box::new(callback))
}
}
impl From<Sender<Vec<NetworkFound>>> for Message {
fn from(sender: Sender<Vec<NetworkFound>>) -> Self {
Self::NetworkScan(sender)
}
}
impl From<Sender<Vec<EnergyScanResult>>> for Message {
fn from(sender: Sender<Vec<EnergyScanResult>>) -> Self {
Self::ChannelScan(sender)
}
}