use crate::prelude::IggyClient;
use async_trait::async_trait;
use iggy_common::StreamClient;
use iggy_common::locking::IggyRwLockFn;
use iggy_common::{Identifier, IggyError, Stream, StreamDetails};
#[async_trait]
impl StreamClient for IggyClient {
async fn get_stream(&self, stream_id: &Identifier) -> Result<Option<StreamDetails>, IggyError> {
self.client.read().await.get_stream(stream_id).await
}
async fn get_streams(&self) -> Result<Vec<Stream>, IggyError> {
self.client.read().await.get_streams().await
}
async fn create_stream(&self, name: &str) -> Result<StreamDetails, IggyError> {
self.client.read().await.create_stream(name).await
}
async fn update_stream(&self, stream_id: &Identifier, name: &str) -> Result<(), IggyError> {
self.client
.read()
.await
.update_stream(stream_id, name)
.await
}
async fn delete_stream(&self, stream_id: &Identifier) -> Result<(), IggyError> {
self.client.read().await.delete_stream(stream_id).await
}
async fn purge_stream(&self, stream_id: &Identifier) -> Result<(), IggyError> {
self.client.read().await.purge_stream(stream_id).await
}
}