lib_compression/
transport.rs1use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Serialize, Deserialize)]
7pub struct TransportConfig {
8 pub max_retries: u32,
9 pub timeout_ms: u64,
10 pub redundancy: usize,
11}
12
13impl Default for TransportConfig {
14 fn default() -> Self {
15 Self {
16 max_retries: 3,
17 timeout_ms: 5000,
18 redundancy: crate::DEFAULT_REDUNDANCY,
19 }
20 }
21}
22
23#[async_trait::async_trait]
25pub trait ShardTransport: Send + Sync {
26 async fn send(&self, shard: &[u8], peer: &str) -> crate::Result<()>;
27 async fn request(&self, shard_id: &[u8; 32], peer: &str) -> crate::Result<Vec<u8>>;
28}