mirror of
https://github.com/hexedtech/codemp.git
synced 2025-03-20 10:11:33 +01:00
45 lines
948 B
Rust
45 lines
948 B
Rust
|
//! # Config
|
||
|
//! Data structure defining clients configuration
|
||
|
|
||
|
|
||
|
/// Configuration struct for `codemp` client
|
||
|
#[derive(Debug, Clone)]
|
||
|
pub struct Config {
|
||
|
/// user identifier used to register, possibly your email
|
||
|
pub username: String,
|
||
|
/// user password chosen upon registration
|
||
|
pub password: String,
|
||
|
/// address of server to connect to, default api.code.mp
|
||
|
pub host: Option<String>,
|
||
|
/// port to connect to, default 50053
|
||
|
pub port: Option<u16>,
|
||
|
/// enable or disable tls, default true
|
||
|
pub tls: Option<bool>,
|
||
|
}
|
||
|
|
||
|
impl Config {
|
||
|
#[inline]
|
||
|
pub(crate) fn host(&self) -> &str {
|
||
|
self.host.as_deref().unwrap_or("api.code.mp")
|
||
|
}
|
||
|
|
||
|
#[inline]
|
||
|
pub(crate) fn port(&self) -> u16 {
|
||
|
self.port.unwrap_or(50053)
|
||
|
}
|
||
|
|
||
|
#[inline]
|
||
|
pub(crate) fn tls(&self) -> bool {
|
||
|
self.tls.unwrap_or(true)
|
||
|
}
|
||
|
|
||
|
pub(crate) fn endpoint(&self) -> String {
|
||
|
format!(
|
||
|
"{}{}:{}",
|
||
|
if self.tls() { "https://" } else { "http" },
|
||
|
self.host(),
|
||
|
self.port()
|
||
|
)
|
||
|
}
|
||
|
}
|