biors 0.58.0

Command-line tools for bio-rs biological AI model input workflows.
use clap::Args;

pub(crate) const DEFAULT_SERVICE_HOST: &str = "127.0.0.1";
pub(crate) const DEFAULT_SERVICE_PORT: u16 = 8787;
pub(crate) const DEFAULT_MAX_BODY_BYTES: usize = 16 * 1024 * 1024;

#[derive(Debug, Clone, Args)]
pub struct ServeArgs {
    #[arg(long, default_value = DEFAULT_SERVICE_HOST)]
    pub host: String,
    #[arg(long, default_value_t = DEFAULT_SERVICE_PORT)]
    pub port: u16,
    #[arg(long, default_value_t = DEFAULT_MAX_BODY_BYTES)]
    pub max_body_bytes: usize,
}

impl ServeArgs {
    pub(crate) fn bind_address(&self) -> String {
        format!("{}:{}", self.host, self.port)
    }

    pub(crate) fn base_url(&self) -> String {
        format!("http://{}:{}", self.host, self.port)
    }
}