pub use comfund_macros::contract;
pub use serde;
#[cfg(any(feature = "reqwest"))]
pub use paths;
#[cfg(feature = "reqwest")]
pub use reqwest_exports::*;
#[cfg(feature = "actix-web")]
pub use actix_web;
#[cfg(feature = "axum")]
pub use axum;
#[cfg(feature = "reqwest")]
mod reqwest_exports {
pub use reqwest;
#[derive(Debug)]
pub enum ClientError {
PathSerializerError(paths::path_serializer::Error),
Reqwest(reqwest::Error),
}
impl From<reqwest::Error> for ClientError {
fn from(value: reqwest::Error) -> Self {
Self::Reqwest(value)
}
}
impl From<::paths::path_serializer::Error> for ClientError {
fn from(value: ::paths::path_serializer::Error) -> Self {
Self::PathSerializerError(value)
}
}
}
#[cfg(feature = "reqwest")]
pub type Result<T> = std::result::Result<T, ClientError>;
#[macro_export]
macro_rules! reexport {
($($comfund_crate:ident)::*) => {
#[cfg(feature = "serde")]
pub use $($comfund_crate)::*::serde;
#[cfg(feature = "reqwest")]
pub use $($comfund_crate)::*::reqwest;
#[cfg(feature = "actix-web")]
pub use $($comfund_crate)::*::actix_web;
#[cfg(feature = "axum")]
pub use $($comfund_crate)::*::axum;
};
() => {
reexport!(comfund)
}
}