use std::fmt; use crate::auth::ApiKey; #[derive(Clone)] pub struct ClientOptions { endpoint: String, api_key: Option, plaintext: bool, } impl ClientOptions { pub fn new(endpoint: impl Into) -> Self { Self { endpoint: endpoint.into(), api_key: None, plaintext: true, } } pub fn with_api_key(mut self, api_key: ApiKey) -> Self { self.api_key = Some(api_key); self } pub fn endpoint(&self) -> &str { &self.endpoint } pub fn api_key(&self) -> Option<&ApiKey> { self.api_key.as_ref() } pub fn plaintext(&self) -> bool { self.plaintext } } impl Default for ClientOptions { fn default() -> Self { Self::new("http://127.0.0.1:5000") } } impl fmt::Debug for ClientOptions { fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result { formatter .debug_struct("ClientOptions") .field("endpoint", &self.endpoint) .field("api_key", &self.api_key.as_ref().map(|_| "")) .field("plaintext", &self.plaintext) .finish() } }