Skip to main content

ara_com/
method.rs

1use crate::error::AraComError;
2use std::time::Duration;
3
4/// Configuration for method calls
5#[derive(Debug, Clone)]
6pub struct MethodConfig {
7    /// Timeout for request-response
8    pub timeout: Duration,
9    /// Number of retries on transport failure
10    pub retries: u32,
11}
12
13impl Default for MethodConfig {
14    fn default() -> Self {
15        Self {
16            timeout: Duration::from_secs(5),
17            retries: 0,
18        }
19    }
20}
21
22/// Result of a method call
23pub type MethodResult<T> = Result<T, AraComError>;
24
25#[cfg(test)]
26mod tests {
27    use super::*;
28
29    #[test]
30    fn test_method_config_defaults() {
31        let config = MethodConfig::default();
32        assert_eq!(config.timeout, Duration::from_secs(5));
33        assert_eq!(config.retries, 0);
34    }
35}