use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "lowercase")]
pub enum QueueBackend {
Nats,
#[serde(rename = "redis_streams", alias = "redis")]
RedisStreams,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct QueueConfig {
pub backend: QueueBackend,
#[serde(default)]
pub nats_url: Option<String>,
#[serde(default = "default_nats_subject")]
pub nats_subject: String,
#[serde(default)]
pub redis_url: Option<String>,
#[serde(default = "default_redis_stream_key")]
pub redis_stream_key: String,
}
fn default_nats_subject() -> String {
String::from("behest.events")
}
fn default_redis_stream_key() -> String {
String::from("behest:events")
}