1#![allow(
45 unreachable_pub,
46 clippy::allow_attributes,
47 clippy::style,
48 clippy::complexity,
49 clippy::perf,
50 clippy::suspicious,
51 clippy::pedantic,
52 clippy::nursery,
53 clippy::unwrap_used,
54 clippy::expect_used,
55 clippy::panic,
56 clippy::unreachable,
57 clippy::get_unwrap,
58 clippy::assertions_on_result_states,
59 clippy::str_to_string,
60 clippy::let_underscore_must_use,
61 clippy::multiple_unsafe_ops_per_block,
62 clippy::unnecessary_safety_comment,
63 clippy::map_err_ignore,
64 dead_code,
65 mismatched_lifetime_syntaxes,
66 unsafe_op_in_unsafe_fn
67)]
68
69mod map;
70mod name;
71mod value;
72
73pub use self::map::{
74 AsHeaderName, Drain, Entry, GetAll, HeaderMap, IntoHeaderName, IntoIter, IntoOrderedIter, Iter,
75 IterMut, Keys, MaxSizeReached, OccupiedEntry, OrderedIter, VacantEntry, ValueDrain, ValueIter,
76 ValueIterMut, Values, ValuesMut,
77};
78pub use self::name::{
79 HeaderName, InvalidHeaderName, LowercaseHeaderName, OriginalHeaderName, StandardHeader,
80};
81pub use self::value::{HeaderValue, InvalidHeaderValue, ToStrError};
82
83#[rustfmt::skip]
85pub use self::name::{
86 ACCEPT,
87 ACCEPT_CHARSET,
88 ACCEPT_ENCODING,
89 ACCEPT_LANGUAGE,
90 ACCEPT_RANGES,
91 ACCESS_CONTROL_ALLOW_CREDENTIALS,
92 ACCESS_CONTROL_ALLOW_HEADERS,
93 ACCESS_CONTROL_ALLOW_METHODS,
94 ACCESS_CONTROL_ALLOW_ORIGIN,
95 ACCESS_CONTROL_EXPOSE_HEADERS,
96 ACCESS_CONTROL_MAX_AGE,
97 ACCESS_CONTROL_REQUEST_HEADERS,
98 ACCESS_CONTROL_REQUEST_METHOD,
99 AGE,
100 ALLOW,
101 ALT_SVC,
102 AUTHORIZATION,
103 CACHE_CONTROL,
104 CACHE_STATUS,
105 CDN_CACHE_CONTROL,
106 CONNECTION,
107 CONTENT_DISPOSITION,
108 CONTENT_ENCODING,
109 CONTENT_LANGUAGE,
110 CONTENT_LENGTH,
111 CONTENT_LOCATION,
112 CONTENT_RANGE,
113 CONTENT_SECURITY_POLICY,
114 CONTENT_SECURITY_POLICY_REPORT_ONLY,
115 CONTENT_TYPE,
116 COOKIE,
117 DNT,
118 DATE,
119 ETAG,
120 EXPECT,
121 EXPIRES,
122 FORWARDED,
123 FROM,
124 HOST,
125 IF_MATCH,
126 IF_MODIFIED_SINCE,
127 IF_NONE_MATCH,
128 IF_RANGE,
129 IF_UNMODIFIED_SINCE,
130 LAST_MODIFIED,
131 LINK,
132 LOCATION,
133 MAX_FORWARDS,
134 ORIGIN,
135 PRAGMA,
136 PROXY_AUTHENTICATE,
137 PROXY_AUTHORIZATION,
138 PUBLIC_KEY_PINS,
139 PUBLIC_KEY_PINS_REPORT_ONLY,
140 RANGE,
141 REFERER,
142 REFERRER_POLICY,
143 REFRESH,
144 RETRY_AFTER,
145 SEC_WEBSOCKET_ACCEPT,
146 SEC_WEBSOCKET_EXTENSIONS,
147 SEC_WEBSOCKET_KEY,
148 SEC_WEBSOCKET_PROTOCOL,
149 SEC_WEBSOCKET_VERSION,
150 SERVER,
151 SET_COOKIE,
152 STRICT_TRANSPORT_SECURITY,
153 TE,
154 TRAILER,
155 TRANSFER_ENCODING,
156 UPGRADE,
157 UPGRADE_INSECURE_REQUESTS,
158 USER_AGENT,
159 VARY,
160 VIA,
161 WARNING,
162 WWW_AUTHENTICATE,
163 X_CONTENT_TYPE_OPTIONS,
164 X_DNS_PREFETCH_CONTROL,
165 X_FRAME_OPTIONS,
166 X_XSS_PROTECTION,
167 X_FORWARDED_HOST,
168 X_FORWARDED_FOR,
169 X_FORWARDED_PROTO,
170 X_ROBOTS_TAG,
171 X_CLACKS_OVERHEAD,
172 SEC_GPC,
173 SEC_FETCH_SITE,
174 PERMISSIONS_POLICY,
175 CROSS_ORIGIN_EMBEDDER_POLICY,
176 CROSS_ORIGIN_EMBEDDER_POLICY_REPORT_ONLY,
177 CROSS_ORIGIN_OPENER_POLICY,
178 CROSS_ORIGIN_OPENER_POLICY_REPORT_ONLY,
179 CROSS_ORIGIN_RESOURCE_POLICY,
180 KEEP_ALIVE,
181 PROXY_CONNECTION,
182 LAST_EVENT_ID,
183 CF_CONNECTING_IP,
184 TRUE_CLIENT_IP,
185 CLIENT_IP,
186 X_CLIENT_IP,
187 X_REAL_IP,
188 ACCESS_CONTROL_ALLOW_PRIVATE_NETWORK,
189 ACCESS_CONTROL_REQUEST_PRIVATE_NETWORK,
190 SEC_CH_SAVE_DATA,
191 SEC_CH_ECT,
192 SEC_CH_RTT,
193 SEC_CH_DOWNLINK,
194 ACCEPT_CH,
195 CRITICAL_CH,
196};
197
198const MAX_HEADER_NAME_LEN: usize = (1 << 16) - 1;
204
205pub static RAMA_ID_HEADER_VALUE: HeaderValue = HeaderValue::from_static(const_format::formatcp!(
207 "{}/{}",
208 rama_utils::info::NAME,
209 rama_utils::info::VERSION
210));