btracker-gemini/src/argument.rs
2025-09-08 14:47:26 +03:00

33 lines
917 B
Rust

use clap::Parser;
use std::{
net::{Ipv4Addr, SocketAddr, SocketAddrV4},
path::PathBuf,
};
#[derive(Parser, Debug)]
#[command(version, about, long_about = None)]
pub struct Argument {
/// Bind server `host:port` to listen incoming connections on it
#[arg(short, long, default_value_t = SocketAddr::V4(SocketAddrV4::new(Ipv4Addr::LOCALHOST, 1965)))]
pub bind: SocketAddr,
/// Filepath to server identity in PKCS (PFX) format
#[arg(short, long)]
pub identity: PathBuf,
/// Passphrase to unlock encrypted identity
#[arg(short, long, default_value_t = String::new())]
pub password: String,
/// btracker-fs directory
#[arg(short, long)]
pub storage: PathBuf,
/// Listing items limit
#[arg(short, long, default_value_t = 10)]
pub limit: usize,
/// Default index capacity
#[arg(short, long, default_value_t = 1000)]
pub capacity: usize,
}