mod bus;
mod controller;
pub use bus::{BusConfig, BusId, ClientId, ServiceAddress, ServiceName};
pub use controller::{Controller, EndpointList, Handler, PollItem};
use internet2::{presentation, transport};
#[derive(Clone, Debug, Display, Error, From)]
#[display(doc_comments)]
pub enum Error<A: ServiceAddress> {
UnexpectedServerResponse,
#[from(lightning_encoding::Error)]
Presentation(presentation::Error),
Send(A, A, transport::Error),
#[from]
Transport(transport::Error),
UnknownBusId(String),
ServiceError(String),
}
impl<A: ServiceAddress> From<zmq::Error> for Error<A> {
fn from(err: zmq::Error) -> Self { Error::Transport(transport::Error::from(err)) }
}
impl<A: ServiceAddress> From<presentation::Error> for Error<A> {
fn from(err: presentation::Error) -> Self {
match err {
presentation::Error::Transport(err) => err.into(),
err => Error::Presentation(err),
}
}
}