1#![cfg_attr(docsrs, feature(doc_cfg))]
2#![forbid(unsafe_code)]
3#![warn(missing_docs, rustdoc::broken_intra_doc_links)]
4#[cfg(not(any(feature = "_async", feature = "_blocking")))]
48compile_error!(
49 "Enable at least one transport feature: \
50 `async-tls-rustls-ring`, `async-tls-rustls-aws-lc-rs`, `async-tls-native`, \
51 `blocking-tls-rustls-ring`, `blocking-tls-rustls-aws-lc-rs`, or `blocking-tls-native`."
52);
53
54#[cfg(all(
56 feature = "_async",
57 not(any(
58 feature = "async-tls-rustls-ring",
59 feature = "async-tls-rustls-aws-lc-rs",
60 feature = "async-tls-native"
61 ))
62))]
63compile_error!(
64 "When `_async` is enabled, enable one async TLS backend: \
65 `async-tls-rustls-ring`, `async-tls-rustls-aws-lc-rs`, or `async-tls-native`."
66);
67#[cfg(all(
68 feature = "async-tls-rustls-ring",
69 feature = "async-tls-rustls-aws-lc-rs"
70))]
71compile_error!("`async-tls-rustls-ring` and `async-tls-rustls-aws-lc-rs` are mutually exclusive.");
72#[cfg(all(feature = "async-tls-rustls-ring", feature = "async-tls-native"))]
73compile_error!("`async-tls-rustls-ring` and `async-tls-native` are mutually exclusive.");
74#[cfg(all(feature = "async-tls-rustls-aws-lc-rs", feature = "async-tls-native"))]
75compile_error!("`async-tls-rustls-aws-lc-rs` and `async-tls-native` are mutually exclusive.");
76#[cfg(all(
77 not(feature = "_async"),
78 any(
79 feature = "async-tls-rustls-ring",
80 feature = "async-tls-rustls-aws-lc-rs",
81 feature = "async-tls-native"
82 )
83))]
84compile_error!("Async TLS features require enabling `_async`.");
85
86#[cfg(all(
88 feature = "_blocking",
89 not(any(
90 feature = "blocking-tls-rustls-ring",
91 feature = "blocking-tls-rustls-aws-lc-rs",
92 feature = "blocking-tls-native"
93 ))
94))]
95compile_error!(
96 "When `_blocking` is enabled, enable one blocking TLS backend: \
97 `blocking-tls-rustls-ring`, `blocking-tls-rustls-aws-lc-rs`, or `blocking-tls-native`."
98);
99#[cfg(all(
100 feature = "blocking-tls-rustls-ring",
101 feature = "blocking-tls-rustls-aws-lc-rs"
102))]
103compile_error!(
104 "`blocking-tls-rustls-ring` and `blocking-tls-rustls-aws-lc-rs` are mutually exclusive."
105);
106#[cfg(all(feature = "blocking-tls-rustls-ring", feature = "blocking-tls-native"))]
107compile_error!("`blocking-tls-rustls-ring` and `blocking-tls-native` are mutually exclusive.");
108#[cfg(all(
109 feature = "blocking-tls-rustls-aws-lc-rs",
110 feature = "blocking-tls-native"
111))]
112compile_error!("`blocking-tls-rustls-aws-lc-rs` and `blocking-tls-native` are mutually exclusive.");
113#[cfg(all(
114 not(feature = "_blocking"),
115 any(
116 feature = "blocking-tls-rustls-ring",
117 feature = "blocking-tls-rustls-aws-lc-rs",
118 feature = "blocking-tls-native"
119 )
120))]
121compile_error!("Blocking TLS features require enabling `_blocking`.");
122
123mod api;
124mod auth;
125mod client;
126mod error;
127mod signature;
128mod transport;
129mod types;
130mod util;
131
132#[cfg(feature = "_blocking")]
133#[cfg_attr(docsrs, doc(cfg(feature = "_blocking")))]
134pub use api::{BlockingEnterpriseService, BlockingWebhookService};
135#[cfg(feature = "_async")]
136#[cfg_attr(docsrs, doc(cfg(feature = "_async")))]
137pub use api::{EnterpriseService, WebhookService};
138#[cfg(feature = "_async")]
139#[cfg_attr(docsrs, doc(cfg(feature = "_async")))]
140pub use client::async_client::{Client, ClientBuilder};
141#[cfg(feature = "_blocking")]
142#[cfg_attr(docsrs, doc(cfg(feature = "_blocking")))]
143pub use client::blocking_client::{BlockingClient, BlockingClientBuilder};
144
145#[cfg(feature = "_blocking")]
146#[cfg_attr(docsrs, doc(cfg(feature = "_blocking")))]
147pub mod blocking {
149 pub use crate::{
150 BlockingEnterpriseService as EnterpriseService, BlockingWebhookService as WebhookService,
151 };
152}
153
154pub use auth::AppCredentials;
156pub use error::{Error, ErrorKind, HttpError, Result, TransportError};
158pub use reqx::advanced::ClientProfile;
160pub use reqx::prelude::RetryPolicy;
162pub use transport::BodySnippetConfig;
164pub use types::{
166 ActionCardButton, ApprovalCreateProcessInstanceRequest, ApprovalFormComponentValue,
167 ApprovalListProcessInstanceIdsRequest, ApprovalListProcessInstanceIdsResult,
168 ApprovalProcessInstance, ApprovalTerminateProcessInstanceRequest,
169 ContactCreateDepartmentRequest, ContactCreateDepartmentResult, ContactCreateUserRequest,
170 ContactCreateUserResult, ContactDeleteDepartmentRequest, ContactDeleteUserRequest,
171 ContactDepartment, ContactGetDepartmentRequest, ContactGetUserByMobileRequest,
172 ContactGetUserByUnionIdRequest, ContactGetUserRequest, ContactListSubDepartmentIdsRequest,
173 ContactListSubDepartmentIdsResult, ContactListSubDepartmentsRequest,
174 ContactListSubDepartmentsResult, ContactListUsersRequest, ContactListUsersResult,
175 ContactUpdateDepartmentRequest, ContactUpdateUserRequest, ContactUser, FeedCardLink,
176};