Skip to main content

weft_core/layers/
error_handler.rs

1use async_trait::async_trait;
2
3#[derive(Debug, Clone)]
4pub struct RequestError {
5    pub status: Option<u16>,
6    pub message: String,
7    pub provider: String,
8    pub key_index: usize,
9    pub retry_count: u32,
10}
11
12#[derive(Debug, Clone)]
13pub enum ErrorAction {
14    Retry { delay_ms: u64 },
15    SwitchKey,
16    SwitchProvider,
17    Fail { message: String },
18}
19
20#[async_trait]
21pub trait ErrorHandlerLayer: Send + Sync {
22    async fn handle(&self, error: &RequestError) -> ErrorAction;
23}