torrust_index/config/v2/
net.rs1use std::net::{IpAddr, Ipv4Addr, SocketAddr};
2
3use serde::{Deserialize, Serialize};
4use url::Url;
5
6use crate::config::Tsl;
7
8#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
15pub struct Network {
16 #[serde(default = "Network::default_base_url")]
19 pub base_url: Option<Url>,
20
21 #[serde(default = "Network::default_bind_address")]
26 pub bind_address: SocketAddr,
27
28 #[serde(default = "Network::default_tsl")]
30 pub tsl: Option<Tsl>,
31}
32
33impl Default for Network {
34 fn default() -> Self {
35 Self {
36 bind_address: Self::default_bind_address(),
37 base_url: Self::default_base_url(),
38 tsl: Self::default_tsl(),
39 }
40 }
41}
42
43impl Network {
44 fn default_bind_address() -> SocketAddr {
45 SocketAddr::new(Self::default_ip(), Self::default_port())
46 }
47
48 fn default_ip() -> IpAddr {
49 IpAddr::V4(Ipv4Addr::new(0, 0, 0, 0))
50 }
51
52 fn default_port() -> u16 {
53 3001
54 }
55
56 fn default_base_url() -> Option<Url> {
57 None
58 }
59
60 fn default_tsl() -> Option<Tsl> {
61 None
62 }
63}