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