use serde::{Deserialize, Serialize};
use wincode::{SchemaRead, SchemaWrite};
#[derive(
Debug, Clone, PartialEq, Eq, thiserror::Error, Serialize, Deserialize, SchemaRead, SchemaWrite,
)]
pub enum CorrelatedStreamError {
#[error("Correlated data stream closed.")]
StreamClosed,
#[error("RecvError: {0}")]
RecvError(String),
#[error("SendError: {0}")]
SendError(String),
#[error("Rate limit exceeded - too many requests")]
RateLimitExceeded,
#[error("Request too large: requested {requested}, max allowed {max_allowed}")]
RequestTooLarge {
requested: usize,
max_allowed: usize,
},
#[error("Timed out acquiring config lock after {timeout_ms}ms")]
LockTimeout { timeout_ms: u64 },
}