use url::Url;
use super::ApiKey;
const DEFAULT_ANTHROPIC_BASE_URL: &str = "https://api.anthropic.com";
pub(crate) const DEFAULT_ANTHROPIC_VERSION: &str = "2023-06-01";
#[derive(Clone)]
pub struct AnthropicConfig {
api_key: ApiKey,
base_url: Url,
}
impl AnthropicConfig {
#[must_use]
pub fn new(api_key: ApiKey) -> Self {
Self {
api_key,
base_url: Url::parse(DEFAULT_ANTHROPIC_BASE_URL)
.expect("crate-owned Anthropic base URL should parse"),
}
}
#[must_use]
pub fn with_base_url(mut self, base_url: Url) -> Self {
self.base_url = base_url;
self
}
pub(crate) fn api_key(&self) -> &ApiKey {
&self.api_key
}
pub(crate) fn base_url(&self) -> &Url {
&self.base_url
}
}