#![deny(missing_docs)]
use error::Error;
use reqwest::{
Client as RClient,
header::{HeaderMap, HeaderValue},
};
use std::sync::Arc;
use url::Url;
pub mod edge_storage;
pub mod error;
#[derive(Debug, Clone)]
pub struct Client {
pub storage: edge_storage::Storage,
}
impl Client {
pub async fn new<T: AsRef<str>>(api_key: T) -> Result<Self, Error> {
let mut headers = HeaderMap::new();
headers.append("AccessKey", HeaderValue::from_str(api_key.as_ref())?);
let reqwest = Arc::new(RClient::builder().default_headers(headers).build()?);
Ok(Self {
storage: edge_storage::Storage {
url: Url::parse("https://storage.bunnycdn.com").unwrap(),
reqwest,
},
})
}
}