use crate::bus::{MessageRouter, TransportError};
use crate::microsvc::{Message, MessageKind, Service, SubscriptionPlan};
impl<D: Send + Sync + 'static> MessageRouter for Service<D> {
fn consumer_group(&self) -> Option<&str> {
self.name()
}
fn handles(&self, kind: MessageKind, name: &str) -> bool {
self.handles_message(kind, name)
}
fn subscription_plan(&self) -> SubscriptionPlan {
Service::subscription_plan(self)
}
async fn dispatch(&self, message: &Message) -> Result<(), TransportError> {
self.dispatch_message(message)
.await
.map(|_| ())
.map_err(TransportError::from)
}
}