use futures::Stream;
use nstreams_core::event::DeliveredEvent;
use nstreams_core::Result;
pub fn delivered_event_json(event: &DeliveredEvent) -> Result<serde_json::Value> {
Ok(serde_json::json!({
"request_id": event.request_id,
"version": event.version,
"payload": serde_json::from_slice::<serde_json::Value>(&event.payload)
.map_err(|error| nstreams_core::Error::Serialization(error.to_string()))?,
}))
}
pub fn registered_event_json(request_id: &str) -> serde_json::Value {
serde_json::json!({ "request_id": request_id })
}
pub fn subscription_stream(
mut subscription: nstreams_core::Subscription,
) -> impl Stream<Item = Result<DeliveredEvent>> + Send {
async_stream::stream! {
while let Some(item) = subscription.next().await {
yield item;
}
}
}