kellnr_settings/local.rs
1use std::net::{IpAddr, Ipv4Addr};
2
3use clap_serde_derive::ClapSerde;
4use serde::{Deserialize, Serialize};
5
6fn default_ip() -> IpAddr {
7 IpAddr::V4(Ipv4Addr::UNSPECIFIED)
8}
9
10#[derive(Debug, Deserialize, Serialize, Eq, PartialEq, Clone, ClapSerde)]
11#[serde(default)]
12pub struct Local {
13 /// IP address to bind to
14 #[default(default_ip())]
15 #[arg(id = "local-ip", long = "local-ip")]
16 pub ip: IpAddr,
17
18 /// Port to listen on
19 #[default(8000)]
20 #[arg(id = "local-port", long = "local-port", short = 'p')]
21 pub port: u16,
22}