Skip to main content

http_type/
lib.rs

1//! http-type
2//!
3//! A comprehensive Rust library providing essential types for HTTP operations.
4//! Includes core HTTP abstractions (request/response, methods, status codes, versions),
5//! content types, cookies, WebSocket support, and thread-safe
6//! concurrent types (ArcMutex, ArcRwLock). Also provides convenient
7//! Option-wrapped primitive types for flexible HTTP handling.
8
9mod any;
10mod arc_mutex;
11mod arc_rwlock;
12mod box_leak;
13mod box_rwlock;
14mod content_type;
15mod cookie;
16mod file_extension;
17mod hash_map_xx_hash3_64;
18mod hash_set_xx_hash3_64;
19mod http_status;
20mod http_url;
21mod http_version;
22mod lifetime;
23mod methods;
24mod panic;
25mod protocol;
26mod rc_rwlock;
27mod request;
28mod response;
29mod status;
30mod stream;
31mod task;
32mod upgrade_type;
33mod websocket_frame;
34
35pub use {
36    any::*, arc_mutex::*, arc_rwlock::*, box_leak::*, box_rwlock::*, content_type::*, cookie::*,
37    file_extension::*, hash_map_xx_hash3_64::*, hash_set_xx_hash3_64::*, http_status::*,
38    http_url::*, http_version::*, lifetime::*, methods::*, panic::*, protocol::*, rc_rwlock::*,
39    request::*, response::*, status::*, stream::*, task::*, upgrade_type::*, websocket_frame::*,
40};
41
42pub use {http_compress::*, http_constant::*, serde_json, tokio};
43
44use std::{
45    any::Any,
46    collections::{HashMap, HashSet, VecDeque},
47    fmt::{self, Debug, Display},
48    hash::Hash,
49    io::ErrorKind,
50    net::IpAddr,
51    num::ParseIntError,
52    pin::Pin,
53    rc::Rc,
54    result::Result,
55    str::{FromStr, SplitWhitespace},
56    sync::{
57        Arc,
58        atomic::{self, AtomicBool, AtomicUsize},
59    },
60    time::Duration,
61};
62
63#[cfg(test)]
64use tokio::task::JoinHandle;
65use {
66    core::hash::BuildHasherDefault,
67    lombok_macros::*,
68    serde::{Deserialize, Serialize, de::DeserializeOwned},
69    tokio::{
70        io::{AsyncBufReadExt, AsyncReadExt, AsyncWriteExt, BufReader},
71        net::TcpStream,
72        runtime::Handle,
73        sync::{
74            Mutex, Notify, RwLock, RwLockReadGuard, RwLockWriteGuard,
75            mpsc::{UnboundedReceiver, UnboundedSender, unbounded_channel},
76        },
77        task::{JoinError, LocalSet, spawn_blocking, spawn_local},
78        time::{error::Elapsed, timeout},
79    },
80    url::{ParseError, Url},
81};