qiniu_http_client/client/request/
mod.rs

1mod builder;
2mod built;
3mod multipart;
4mod request_metadata;
5
6pub use qiniu_http::SyncRequestBody;
7use std::borrow::Cow;
8
9#[cfg(feature = "async")]
10pub use qiniu_http::AsyncRequestBody;
11
12/// HTTP 查询参数名
13pub type QueryPairKey<'q> = Cow<'q, str>;
14
15/// HTTP 查询参数值
16pub type QueryPairValue<'q> = Cow<'q, str>;
17
18/// HTTP 查询参数对
19pub type QueryPair<'q> = (QueryPairKey<'q>, QueryPairValue<'q>);
20
21/// API 幂等性
22#[derive(Clone, Copy, Debug, Default)]
23#[non_exhaustive]
24pub enum Idempotent {
25    /// 总是幂等
26    Always,
27
28    /// 根据 HTTP 方法自动判定
29    ///
30    /// 参考 <https://datatracker.ietf.org/doc/html/rfc7231#section-4.2.2>
31    #[default]
32    Default,
33
34    /// 不幂等
35    Never,
36}
37
38pub use builder::{RequestBuilder, RequestBuilderParts, RequestParts, SyncRequestBuilder};
39pub(super) use built::{InnerRequest, InnerRequestParts};
40pub use multipart::{FieldName, FileName, Multipart, Part, PartMetadata, SyncMultipart, SyncPart, SyncPartBody};
41
42#[cfg(feature = "async")]
43pub use {
44    builder::AsyncRequestBuilder,
45    multipart::{AsyncMultipart, AsyncPart, AsyncPartBody},
46};
47
48pub(super) type SyncInnerRequest<'r, E> = InnerRequest<'r, SyncRequestBody<'r>, E>;
49
50#[cfg(feature = "async")]
51#[cfg_attr(feature = "docs", doc(cfg(feature = "async")))]
52pub(super) type AsyncInnerRequest<'r, E> = InnerRequest<'r, AsyncRequestBody<'r>, E>;