1mod url_build;
37
38pub mod auth;
39pub mod backend;
40pub mod client;
41pub mod endpoint;
42pub mod error;
43pub mod hooks;
44#[cfg(feature = "json")]
45mod json_parser;
46
47pub mod plugin;
48pub mod plugins;
49pub mod request;
50pub mod response;
51pub mod retry;
52#[cfg(feature = "validate")]
53mod validate_json;
54
55#[cfg(feature = "schema")]
56pub mod schema;
57
58#[cfg(feature = "openapi")]
59pub mod openapi;
60
61#[cfg(feature = "tower")]
62pub mod tower;
63
64pub use auth::{AsyncTokenProvider, Auth, TokenSource};
65pub use backend::{HttpBackend, HttpRequest, HttpResponse, ReqwestBackend};
66pub use client::{Client, ClientBuilder, ClientConfig};
67pub use endpoint::Endpoint;
68pub use error::Error;
69pub use hooks::{ErrorContext, Hooks, RequestContext, ResponseContext, SuccessContext};
70#[cfg(feature = "json")]
71pub use json_parser::{json_parser, serde_json_parser, JsonParserFn};
72pub use plugin::{Plugin, PluginRegistry, PreparedRequest};
73pub use plugins::LoggerPlugin;
74pub use request::RequestBuilder;
75pub use response::Response;
76pub use retry::{default_should_retry, RetryPolicy, ShouldRetryFn};
77
78#[cfg(feature = "schema")]
79pub use schema::{EndpointSchema, SchemaRegistry};
80
81#[cfg(feature = "openapi")]
82pub use openapi::{
83 OpenApiBuilder, OpenApiComponents, OpenApiDocument, OpenApiInfo, OpenApiOperation, OpenApiSchemaRef,
84 OpenApiServer,
85};
86
87#[cfg(feature = "tower")]
88pub use tower::{BoxHttpService, ReqwestHttpService, ServiceBackend};
89
90pub type Result<T> = std::result::Result<T, Error>;