http_request/response/struct.rs
1use super::*;
2
3/// Parsed HTTP response.
4///
5/// Value type with all fields public — no `Arc<RwLock>` wrapping, no
6/// associated-type / boxed-trait indirection. Use the field accessors
7/// directly (`response.status_code`, `response.body`, ...) or the
8/// convenience helpers (`response.text()`, `response.is_success()`).
9///
10/// `HttpResponse` is `Clone` and `Debug`. Decoding is a method
11/// ([`HttpResponse::decode`]) that returns a fresh `HttpResponse` with
12/// the body expanded — original is untouched.
13#[derive(Clone, Debug, Getter, Setter)]
14pub struct HttpResponse {
15 /// HTTP version (`HTTP/1.1`, `HTTP/2`, ...).
16 pub version: HttpVersion,
17 /// 3-digit numeric status code (`200`, `404`, ...).
18 #[get(type(copy))]
19 pub status_code: ResponseStatusCode,
20 /// Reason phrase (`"OK"`, `"Not Found"`, ...).
21 #[set(type(AsRef<str>))]
22 pub reason_phrase: String,
23 /// Response headers (single-value, lowercase keys).
24 pub headers: HttpResponseHeaders,
25 /// Raw response body bytes.
26 #[set(type(AsRef<[u8]>))]
27 pub body: ResponseBody,
28}