use crate::error::Result;
use crate::store::Store;
pub fn consumer<'a>(hostname: &'a str, port: i32, queue: &'a str) -> ConsumerBuilder<'a> {
ConsumerBuilder::new(hostname, port, queue)
}
pub struct ConsumerBuilder<'a> {
hostname: &'a str,
port: i32,
queue: &'a str,
}
impl<'a> ConsumerBuilder<'a> {
pub fn new(hostname: &'a str, port: i32, queue: &'a str) -> Self {
Self {
hostname,
port,
queue,
}
}
pub async fn create<S: Store>(self, store: &S) -> Result<crate::workers::Consumer> {
store
.consumer(self.queue, self.hostname, self.port, store.config())
.await
}
}