1pub mod api;
8pub mod auth;
9pub mod config;
11pub mod constants;
13pub mod error;
15pub mod http;
17pub(crate) mod observability;
18pub(crate) mod query_params;
19pub mod req_option;
21pub(crate) mod request_builder;
22#[cfg(feature = "testing")]
23pub mod testing;
24pub mod trait_system;
25pub mod validation;
26
27mod content_disposition;
30mod performance;
31mod req_translator;
32mod response_handler;
33mod utils;
34
35pub use error::{validation_error, CoreError, SDKResult};
37pub use validation::Validatable;
38
39#[macro_export]
51macro_rules! validate_required {
52 ($field:expr, $error_msg:expr) => {
53 if $crate::Validatable::is_empty_trimmed(&$field) {
54 return Err($crate::error::CoreError::validation_msg($error_msg));
55 }
56 };
57}
58
59#[macro_export]
71macro_rules! validate_required_list {
72 ($field:expr, $max_len:expr, $error_msg:expr) => {
73 if $field.is_empty() {
74 return Err($crate::error::CoreError::validation_msg($error_msg));
75 }
76 if $field.len() > $max_len {
77 return Err($crate::error::CoreError::validation_msg($error_msg));
78 }
79 };
80}
81
82pub mod prelude {
84 pub use crate::api::prelude::*;
86
87 pub use crate::config::Config;
89 pub use crate::constants::*;
90 pub use crate::error::{validation_error, CoreError, SDKResult};
91 pub use crate::http::Transport;
92 pub use crate::req_option::*;
93 pub use crate::validate_required;
94 pub use crate::validate_required_list;
95}