1use http::HeaderMap;
2
3#[derive(Debug, Clone)]
5pub struct WebhookRequest<'a> {
6 pub payload: &'a [u8],
8 pub headers: HeaderMap,
10}
11
12impl<'a> WebhookRequest<'a> {
13 #[inline]
15 #[must_use]
16 pub fn new(payload: &'a [u8], headers: HeaderMap) -> Self {
17 Self { payload, headers }
18 }
19}
20
21#[cfg(test)]
22mod tests {
23 use super::*;
24
25 #[test]
26 fn new_keeps_payload_and_headers() {
27 let mut headers = HeaderMap::new();
28 headers.insert("webhook-id", "evt_1".parse().expect("header should parse"));
29
30 let request = WebhookRequest::new(b"{}", headers);
31
32 assert_eq!(request.payload, b"{}");
33 assert_eq!(
34 request
35 .headers
36 .get("webhook-id")
37 .expect("header should exist"),
38 "evt_1"
39 );
40 }
41}