bitwarden_core/client/
client.rs1use std::sync::Arc;
2
3use super::internal::InternalClient;
4use crate::{
5 auth::auth_tokens::TokenHandler,
6 client::{builder::ClientBuilder, client_settings::ClientSettings},
7};
8
9#[derive(Clone)]
11pub struct Client {
12 #[doc(hidden)]
17 pub internal: Arc<InternalClient>,
18}
19
20impl Client {
21 pub fn new(settings: Option<ClientSettings>) -> Self {
23 let mut builder = ClientBuilder::new();
24 if let Some(s) = settings {
25 builder = builder.with_settings(s);
26 }
27 builder.build()
28 }
29
30 pub fn new_with_token_handler(
33 settings: Option<ClientSettings>,
34 token_handler: Arc<dyn TokenHandler>,
35 ) -> Self {
36 let mut builder = ClientBuilder::new().with_token_handler(token_handler);
37 if let Some(s) = settings {
38 builder = builder.with_settings(s);
39 }
40 builder.build()
41 }
42
43 pub fn builder() -> ClientBuilder {
45 ClientBuilder::new()
46 }
47}