use std::time::Duration;
use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize, Clone)]
#[non_exhaustive]
pub enum MiddlewareConfig {
Timeout {
duration: Duration,
},
LoadShed,
RateLimit {
num: u64,
per: Duration,
},
Concurrency {
max: usize,
},
Buffer {
bound: usize,
},
CatchPanic,
Retries {
max: usize,
},
LongRunning {
duration: Duration,
},
Ack {
url: String,
},
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct WorkerConfig(Vec<MiddlewareConfig>);