#![forbid(unsafe_op_in_unsafe_fn)]
mod cancel;
mod compress;
mod cookie;
mod digest;
mod error;
mod http;
mod idn;
pub mod multi;
pub mod pool;
pub mod resume;
mod sigv4;
mod smtp;
mod telnet;
mod transfer;
mod url;
pub mod net;
pub mod tls;
#[cfg(feature = "bittorrent")]
pub mod bittorrent;
pub mod dict;
pub mod file;
pub mod ftp;
pub mod gopher;
pub mod http2;
pub mod http3;
pub mod imap;
pub mod ldap;
pub mod mqtt;
pub mod pop3;
pub mod rtsp;
pub mod ssh;
pub mod tftp;
pub mod websocket;
pub mod ffi;
pub use crate::cancel::CancelToken;
pub use crate::cookie::{Cookie, CookieJar, SameSite};
pub use crate::error::{Error, Result};
pub use crate::http::{
send_multiplexed, send_multiplexed_traced, HttpVersionPref, Priority, ProxyConfig, Request,
Response, ResponseHead, Timing, TlsInfo,
};
pub use crate::multi::{EasyId, Multi};
pub use crate::net::Client;
pub use crate::transfer::{transfer, transfer_url};
pub use crate::url::Url;
pub use crate::websocket::{WebSocket, WsClose, WsEvent, WsFrame, WsMessage, WsOpcode};
pub fn get<U: AsRef<str>>(url: U) -> Result<Response> {
Request::get(url.as_ref())?.send()
}
pub fn request<U: AsRef<str>>(method: &str, url: U) -> Result<Response> {
Request::new(method, url.as_ref())?.send()
}