use crate::analyticsx::query_respreader::QueryRespReader;
use crate::analyticsx::query_result::MetaData;
use crate::error;
use bytes::Bytes;
use futures::StreamExt;
use futures_core::Stream;
pub struct AnalyticsResultStream {
pub(crate) inner: QueryRespReader,
pub(crate) endpoint: String,
}
impl AnalyticsResultStream {
pub fn endpoint(&self) -> &str {
&self.endpoint
}
pub fn metadata(&self) -> error::Result<&MetaData> {
self.inner.metadata().map_err(|e| e.into())
}
}
impl Stream for AnalyticsResultStream {
type Item = error::Result<Bytes>;
fn poll_next(
mut self: std::pin::Pin<&mut Self>,
cx: &mut std::task::Context<'_>,
) -> std::task::Poll<Option<Self::Item>> {
self.inner.poll_next_unpin(cx).map_err(|e| e.into())
}
}