sword_layers/req_timeout/
config.rs1use crate::{DisplayConfig, utils::TimeConfig};
2use console::style;
3use duration_str::parse as parse_duration;
4use serde::{Deserialize, Serialize};
5use std::time::Duration;
6
7#[derive(Debug, Clone, Serialize, Deserialize)]
12#[serde(default)]
13pub struct RequestTimeoutConfig {
14 pub enabled: bool,
16 pub timeout: TimeConfig,
18 pub display: bool,
20}
21
22impl DisplayConfig for RequestTimeoutConfig {
23 fn display(&self) {
24 if !self.display {
25 return;
26 }
27
28 println!("\n{}", style("Request Timeout Configuration:").bold());
29
30 if self.enabled {
31 println!(" ↳ Request Timeout: {}", self.timeout.raw);
32 } else {
33 println!(" ↳ Request Timeout: disabled");
34 }
35 }
36}
37
38impl Default for RequestTimeoutConfig {
39 fn default() -> Self {
40 let duration_str = "15s".to_string();
41 let parsed_duration =
42 parse_duration(&duration_str).unwrap_or_else(|_| Duration::from_secs(15));
43
44 RequestTimeoutConfig {
45 enabled: false,
46 timeout: TimeConfig {
47 parsed: parsed_duration,
48 raw: duration_str,
49 },
50 display: false,
51 }
52 }
53}