use authority::Authority;
use error::InterfaceError;
use std::sync::mpsc::Sender;
use messages::{RoutingMessage, RequestContent};
#[derive(Clone)]
pub enum Action {
NodeSendMessage {
content: RoutingMessage,
result_tx: Sender<Result<(), InterfaceError>>,
},
ClientSendRequest {
content: RequestContent,
dst: Authority,
result_tx: Sender<Result<(), InterfaceError>>,
},
Terminate,
}
impl ::std::fmt::Debug for Action {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
match *self {
Action::NodeSendMessage { ref content, .. } => {
write!(f, "Action::NodeSendMessage {{ {:?}, result_tx }}", content)
}
Action::ClientSendRequest { ref content, ref dst, .. } => {
write!(f,
"Action::ClientSendRequest {{ {:?}, dst: {:?}, result_tx }}",
content,
dst)
}
Action::Terminate => write!(f, "Action::Terminate"),
}
}
}