Skip to main content

kellnr_settings/
local.rs

1use std::net::{IpAddr, Ipv4Addr};
2
3use provcfg::{ClapArgs, Configurable};
4use serde::{Deserialize, Serialize};
5
6fn default_ip() -> IpAddr {
7    IpAddr::V4(Ipv4Addr::UNSPECIFIED)
8}
9
10#[derive(Debug, Deserialize, Serialize, Eq, PartialEq, Clone, Configurable, ClapArgs)]
11#[serde(default)]
12#[configurable(clap_prefix = "local")]
13pub struct Local {
14    /// IP address to bind to
15    pub ip: IpAddr,
16
17    /// Port to listen on
18    #[arg(short = 'p')]
19    pub port: u16,
20}
21
22impl Default for Local {
23    fn default() -> Self {
24        Self {
25            ip: default_ip(),
26            port: 8000,
27        }
28    }
29}