Skip to content

Commit c64624d

Browse files
authored
Merge pull request #116 from hug-dev/deref
Implement Deref(Mut) on bodies
2 parents 4adc4c8 + d968fb3 commit c64624d

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

src/requests/request/request_body.rs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ use crate::requests::Result;
44
#[cfg(feature = "fuzz")]
55
use arbitrary::Arbitrary;
66
use std::io::{Read, Write};
7+
use std::ops::{Deref, DerefMut};
78
use zeroize::Zeroize;
89

910
/// Wrapper around the body of a request.
@@ -16,6 +17,20 @@ pub struct RequestBody {
1617
buffer: Vec<u8>,
1718
}
1819

20+
impl Deref for RequestBody {
21+
type Target = [u8];
22+
23+
fn deref(&self) -> &Self::Target {
24+
&self.buffer
25+
}
26+
}
27+
28+
impl DerefMut for RequestBody {
29+
fn deref_mut(&mut self) -> &mut Self::Target {
30+
&mut self.buffer
31+
}
32+
}
33+
1934
impl RequestBody {
2035
/// Create a new, emtpy request body field.
2136
/// Available for testing only.

src/requests/response/response_body.rs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
use super::Result;
44
use serde::{Deserialize, Serialize};
55
use std::io::{Read, Write};
6+
use std::ops::{Deref, DerefMut};
67
use zeroize::Zeroize;
78

89
/// Wrapper around the body of a response.
@@ -14,6 +15,20 @@ pub struct ResponseBody {
1415
buffer: Vec<u8>,
1516
}
1617

18+
impl Deref for ResponseBody {
19+
type Target = [u8];
20+
21+
fn deref(&self) -> &Self::Target {
22+
&self.buffer
23+
}
24+
}
25+
26+
impl DerefMut for ResponseBody {
27+
fn deref_mut(&mut self) -> &mut Self::Target {
28+
&mut self.buffer
29+
}
30+
}
31+
1732
impl ResponseBody {
1833
/// Create a new empty response body.
1934
pub(crate) fn new() -> ResponseBody {

0 commit comments

Comments
 (0)