#[cfg(feature = "cli")]
use crate::client::ClientOptions;
#[cfg(feature = "cli")]
#[derive(Debug, Clone)]
pub struct AppConfig {
pub command: CommandConfig,
pub output: crate::config::OutputConfig,
pub logging: crate::config::LoggingConfig,
pub client: ClientOptions,
}
#[cfg(feature = "cli")]
#[derive(Debug, Clone)]
pub enum CommandConfig {
Run(RunConfig),
#[cfg(feature = "server")]
Serve(ServeConfig),
}
#[cfg(feature = "cli")]
#[derive(Debug, Clone, Default)]
pub struct RunConfig {
pub quiet: bool,
pub task: crate::config::RunTask,
}
#[cfg(feature = "server")]
#[doc(alias = "server")]
#[derive(Debug, Clone)]
pub struct ServeConfig {
pub host: String,
pub port: u16,
}
#[cfg(feature = "server")]
impl ServeConfig {
#[doc(alias = "bind")]
#[doc(alias = "socket_addr")]
pub fn bind_addr(&self) -> String {
format!("{}:{}", self.host, self.port)
}
#[doc(alias = "root_url")]
pub fn base_url(&self) -> String {
format!("http://{}", self.bind_addr())
}
}