1use bon::bon;
4use std::sync::Arc;
5
6mod error;
7pub use error::Error;
8
9mod trans;
10mod types_rs;
11mod utils;
12
13use crate::credentials::CredentialsProvider;
14pub use types_rs::*;
15use u_sdk_common::open_api_sign::OpenApiStyle;
16
17pub struct Client {
18 credentials_provider: Arc<dyn CredentialsProvider>,
19 http_client: reqwest::Client,
20 host: String,
21 style: OpenApiStyle,
22}
23
24#[bon]
25impl Client {
26 #[builder(on(String, into))]
27 pub fn new(credentials_provider: Arc<dyn CredentialsProvider>, host: String) -> Self {
28 Self {
29 credentials_provider,
30 http_client: reqwest::Client::new(),
31 host,
32 style: OpenApiStyle::RPC,
33 }
34 }
35}