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;
22pub mod security;
24#[cfg(feature = "testing")]
25pub mod testing;
26pub mod trait_system;
27pub mod validation;
28
29mod content_disposition;
32mod performance;
33mod req_translator;
34mod response_handler;
35mod utils;
36
37pub use error::{CoreError, SDKResult, validation_error};
39pub use validation::Validatable;
40
41#[macro_export]
53macro_rules! validate_required {
54 ($field:expr, $error_msg:expr) => {
55 if $crate::Validatable::is_empty_trimmed(&$field) {
56 return Err($crate::error::CoreError::validation_msg($error_msg));
57 }
58 };
59}
60
61#[macro_export]
73macro_rules! validate_required_list {
74 ($field:expr, $max_len:expr, $error_msg:expr) => {
75 if $field.is_empty() {
76 return Err($crate::error::CoreError::validation_msg($error_msg));
77 }
78 if $field.len() > $max_len {
79 return Err($crate::error::CoreError::validation_msg($error_msg));
80 }
81 };
82}
83
84pub mod prelude {
86 pub use crate::api::prelude::*;
88
89 pub use crate::config::Config;
91 pub use crate::constants::*;
92 pub use crate::error::{CoreError, SDKResult, validation_error};
93 pub use crate::http::Transport;
94 pub use crate::req_option::*;
95 pub use crate::validate_required;
96 pub use crate::validate_required_list;
97}