Skip to main content

palladium_http/
message.rs

1use bytes::Bytes;
2use http::{HeaderMap, Method, StatusCode, Uri};
3use palladium_actor::Message;
4
5/// An inbound HTTP request translated into an actor message.
6///
7/// Received by handler actors (e.g. `RestApiAdapter`) via `on_message`.
8/// The actor replies with an [`HttpResponse`] via `ask`.
9pub struct HttpRequest {
10    pub method: Method,
11    pub uri: Uri,
12    pub headers: HeaderMap,
13    pub body: Bytes,
14}
15
16/// The actor's reply to an [`HttpRequest`].
17pub struct HttpResponse {
18    pub status: StatusCode,
19    pub headers: HeaderMap,
20    pub body: Bytes,
21}
22
23impl Message for HttpRequest {
24    type Response = HttpResponse;
25    const TYPE_TAG: u64 =
26        palladium_actor::fnv1a_64("palladium_http::message::HttpRequest");
27}