Skip to content

Commit 42c70ac

Browse files
authored
Merge pull request #91 from Koxiaet/master
Implement `Clone` for `Request` and `Response`
2 parents c2ed53d + 51101f3 commit 42c70ac

File tree

3 files changed

+32
-1
lines changed

3 files changed

+32
-1
lines changed

src/headers/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ pub use to_header_values::ToHeaderValues;
2525
pub use values::Values;
2626

2727
/// A collection of HTTP Headers.
28-
#[derive(Debug)]
28+
#[derive(Debug, Clone)]
2929
pub struct Headers {
3030
pub(crate) headers: HashMap<HeaderName, Vec<HeaderValue>>,
3131
}

src/request.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -491,6 +491,22 @@ impl Request {
491491
}
492492
}
493493

494+
impl Clone for Request {
495+
/// Clone the request, resolving the body to `Body::empty()` and removing extensions.
496+
fn clone(&self) -> Self {
497+
Request {
498+
method: self.method.clone(),
499+
url: self.url.clone(),
500+
headers: self.headers.clone(),
501+
version: self.version.clone(),
502+
sender: self.sender.clone(),
503+
receiver: self.receiver.clone(),
504+
body: Body::empty(),
505+
local: TypeMap::new(),
506+
}
507+
}
508+
}
509+
494510
impl Read for Request {
495511
#[allow(missing_doc_code_examples)]
496512
fn poll_read(

src/response.rs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -456,6 +456,21 @@ impl Response {
456456
}
457457
}
458458

459+
impl Clone for Response {
460+
/// Clone the response, resolving the body to `Body::empty()` and removing extensions.
461+
fn clone(&self) -> Self {
462+
Self {
463+
status: self.status.clone(),
464+
headers: self.headers.clone(),
465+
version: self.version.clone(),
466+
sender: self.sender.clone(),
467+
receiver: self.receiver.clone(),
468+
body: Body::empty(),
469+
local: TypeMap::new(),
470+
}
471+
}
472+
}
473+
459474
impl Read for Response {
460475
#[allow(missing_doc_code_examples)]
461476
fn poll_read(

0 commit comments

Comments
 (0)