use crate::ValkeyResult;
use crate::pipeline::Pipeline;
use crate::value::FromValkeyValue;
#[doc(hidden)]
#[sealed::sealed(pub(crate))]
pub trait SyncPipelineDispatch {
fn glide_dispatch_pipeline<T: FromValkeyValue + Send>(
&self,
pipeline: &Pipeline,
) -> ValkeyResult<T>;
}
pub trait PipelineExt {
fn query<T: FromValkeyValue + Send>(&self, con: &impl SyncPipelineDispatch) -> ValkeyResult<T>;
fn exec(&self, con: &impl SyncPipelineDispatch) -> ValkeyResult<()> {
self.query(con)
}
}
impl PipelineExt for Pipeline {
fn query<T: FromValkeyValue + Send>(&self, con: &impl SyncPipelineDispatch) -> ValkeyResult<T> {
con.glide_dispatch_pipeline(self)
}
}