use std::sync::Arc;
use async_trait::async_trait;
use crate::error::QueueResult;
use crate::queue::Queue;
#[async_trait]
pub trait QueueProvider: Send + Sync + 'static {
fn name(&self) -> &'static str;
async fn build(&self, params: &serde_json::Value) -> QueueResult<Arc<dyn Queue>>;
}