office_convert_client/
lib.rs1pub mod client;
2pub mod load;
3
4use std::sync::Arc;
5
6use bytes::Bytes;
7pub use client::{ClientOptions, CreateError, OfficeConvertClient, RequestError};
8pub use load::{LoadBalanceError, OfficeConvertLoadBalancer};
9
10#[derive(Clone)]
12pub enum OfficeConverter {
13 LoadBalanced(Arc<OfficeConvertLoadBalancer>),
15 Client(OfficeConvertClient),
18}
19
20impl OfficeConverter {
21 pub fn from_client(client: OfficeConvertClient) -> Self {
23 Self::Client(client)
24 }
25
26 pub fn from_load_balancer(client: OfficeConvertLoadBalancer) -> Self {
28 Self::LoadBalanced(Arc::new(client))
29 }
30
31 pub async fn convert(&self, file: Bytes) -> Result<Bytes, RequestError> {
37 match self {
38 OfficeConverter::LoadBalanced(inner) => inner.convert(file).await,
39 OfficeConverter::Client(inner) => inner.convert(file).await,
40 }
41 }
42}