mod builder;
mod send;
mod target;
pub use builder::{FetchBuilder, Priority, Request, RequestBuilder};
pub use send::send;
pub use target::Target;
use std::{pin::Pin, time::Duration};
use bytes::Bytes;
use futures::Stream;
#[cfg(feature = "cache")]
use http_cache_reqwest::CacheMode;
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
pub enum Credentials {
Omit,
#[default]
Include,
}
const NORMALISED_METHODS: [&str; 6] = ["DELETE", "GET", "HEAD", "OPTIONS", "POST", "PUT"];
pub const QUERY: &str = "QUERY";
pub const PRIORITY: &str = "priority";
pub enum RequestBody {
None,
Bytes(Bytes),
Stream(Pin<Box<dyn Stream<Item = std::io::Result<Bytes>> + Send>>),
}
#[derive(Clone, Debug, Default)]
pub struct RequestOptions {
#[cfg(feature = "cache")]
pub cache: CacheMode,
#[cfg(feature = "encoding")]
pub compress: Option<String>,
pub body_content_type: Option<String>,
pub credentials: Credentials,
pub headers: Option<Vec<(String, String)>>,
pub integrity: Option<String>,
pub method: Option<String>,
pub priority: Option<&'static str>,
pub timeout: Option<Duration>,
}