16dbb5987Sopenharmony_ci// Copyright (c) 2023 Huawei Device Co., Ltd.
26dbb5987Sopenharmony_ci// Licensed under the Apache License, Version 2.0 (the "License");
36dbb5987Sopenharmony_ci// you may not use this file except in compliance with the License.
46dbb5987Sopenharmony_ci// You may obtain a copy of the License at
56dbb5987Sopenharmony_ci//
66dbb5987Sopenharmony_ci//     http://www.apache.org/licenses/LICENSE-2.0
76dbb5987Sopenharmony_ci//
86dbb5987Sopenharmony_ci// Unless required by applicable law or agreed to in writing, software
96dbb5987Sopenharmony_ci// distributed under the License is distributed on an "AS IS" BASIS,
106dbb5987Sopenharmony_ci// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
116dbb5987Sopenharmony_ci// See the License for the specific language governing permissions and
126dbb5987Sopenharmony_ci// limitations under the License.
136dbb5987Sopenharmony_ci
146dbb5987Sopenharmony_ci//! Ylong http client utility module.
156dbb5987Sopenharmony_ci//!
166dbb5987Sopenharmony_ci//! A tool module that supports various functions of the http client.
176dbb5987Sopenharmony_ci//!
186dbb5987Sopenharmony_ci//! -[`ClientConfig`] is used to configure a client with options and flags.
196dbb5987Sopenharmony_ci//! -[`HttpConfig`] is used to configure `HTTP` related logic.
206dbb5987Sopenharmony_ci//! -[`HttpVersion`] is used to provide Http Version.
216dbb5987Sopenharmony_ci
226dbb5987Sopenharmony_cipub(crate) mod base64;
236dbb5987Sopenharmony_cipub(crate) mod config;
246dbb5987Sopenharmony_cipub(crate) mod normalizer;
256dbb5987Sopenharmony_cipub(crate) mod pool;
266dbb5987Sopenharmony_cipub(crate) mod proxy;
276dbb5987Sopenharmony_cipub(crate) mod redirect;
286dbb5987Sopenharmony_ci
296dbb5987Sopenharmony_ci#[cfg(feature = "async")]
306dbb5987Sopenharmony_cipub(crate) mod request;
316dbb5987Sopenharmony_ci
326dbb5987Sopenharmony_ci#[cfg(feature = "__tls")]
336dbb5987Sopenharmony_cipub(crate) mod c_openssl;
346dbb5987Sopenharmony_ci
356dbb5987Sopenharmony_ci#[cfg(any(feature = "http1_1", feature = "http2"))]
366dbb5987Sopenharmony_cipub(crate) mod dispatcher;
376dbb5987Sopenharmony_ci
386dbb5987Sopenharmony_ci#[cfg(feature = "http3")]
396dbb5987Sopenharmony_cipub(crate) mod alt_svc;
406dbb5987Sopenharmony_ci#[cfg(any(feature = "http3", feature = "http2"))]
416dbb5987Sopenharmony_cipub(crate) mod data_ref;
426dbb5987Sopenharmony_ci#[cfg(feature = "http2")]
436dbb5987Sopenharmony_cipub(crate) mod h2;
446dbb5987Sopenharmony_ci#[cfg(feature = "http3")]
456dbb5987Sopenharmony_cipub(crate) mod h3;
466dbb5987Sopenharmony_ci#[cfg(all(test, feature = "ylong_base"))]
476dbb5987Sopenharmony_cipub(crate) mod test_utils;
486dbb5987Sopenharmony_ci
496dbb5987Sopenharmony_ci#[cfg(feature = "__tls")]
506dbb5987Sopenharmony_cipub use c_openssl::{
516dbb5987Sopenharmony_ci    Cert, Certificate, PubKeyPins, PubKeyPinsBuilder, TlsConfig, TlsConfigBuilder, TlsFileType,
526dbb5987Sopenharmony_ci    TlsVersion,
536dbb5987Sopenharmony_ci};
546dbb5987Sopenharmony_ci#[cfg(feature = "__tls")]
556dbb5987Sopenharmony_cipub(crate) use config::{AlpnProtocol, AlpnProtocolList};
566dbb5987Sopenharmony_ci#[cfg(feature = "__tls")]
576dbb5987Sopenharmony_cipub use config::{CertVerifier, ServerCerts};
586dbb5987Sopenharmony_cipub use config::{Proxy, ProxyBuilder, Redirect, Retry, SpeedLimit, Timeout};
596dbb5987Sopenharmony_ci#[cfg(all(feature = "async", feature = "ylong_base", feature = "http2"))]
606dbb5987Sopenharmony_cipub(crate) use h2::{split, Reader, Writer};
61