pub mod client;
pub mod load;
use std::sync::Arc;
use bytes::Bytes;
pub use client::{ClientOptions, CreateError, OfficeConvertClient, RequestError};
pub use load::OfficeConvertLoadBalancer;
#[derive(Clone)]
pub enum OfficeConverter {
LoadBalanced(Arc<OfficeConvertLoadBalancer>),
Client(OfficeConvertClient),
}
impl OfficeConverter {
pub fn from_client(client: OfficeConvertClient) -> Self {
Self::Client(client)
}
pub fn from_load_balancer(client: OfficeConvertLoadBalancer) -> Self {
Self::LoadBalanced(Arc::new(client))
}
pub async fn convert(&self, file: Bytes) -> Result<Bytes, RequestError> {
match self {
OfficeConverter::LoadBalanced(inner) => inner.convert(file).await,
OfficeConverter::Client(inner) => inner.convert(file).await,
}
}
}