Skip to content

Commit

Permalink
DRY
Browse files Browse the repository at this point in the history
Signed-off-by: Alex Leong <[email protected]>
  • Loading branch information
adleong committed Jul 19, 2023
1 parent 22b6052 commit 6f6be6e
Showing 1 changed file with 13 additions and 26 deletions.
39 changes: 13 additions & 26 deletions linkerd/http-route/src/http/filter/modify_header.rs
Original file line number Diff line number Diff line change
Expand Up @@ -46,19 +46,6 @@ pub mod proto {
type Error = InvalidModifyHeader;

fn try_from(rhm: api::RequestHeaderModifier) -> Result<Self, Self::Error> {
fn to_pairs(
hs: Option<http_types::Headers>,
) -> Result<Vec<(HeaderName, HeaderValue)>, InvalidModifyHeader> {
hs.into_iter()
.flat_map(|a| a.headers.into_iter())
.map(|h| {
let name = h.name.parse::<HeaderName>()?;
let value = HeaderValue::from_bytes(&h.value)?;
Ok((name, value))
})
.collect()
}

let add = to_pairs(rhm.add)?;
let set = to_pairs(rhm.set)?;
let remove = rhm
Expand All @@ -76,19 +63,6 @@ pub mod proto {
type Error = InvalidModifyHeader;

fn try_from(rhm: api::ResponseHeaderModifier) -> Result<Self, Self::Error> {
fn to_pairs(
hs: Option<http_types::Headers>,
) -> Result<Vec<(HeaderName, HeaderValue)>, InvalidModifyHeader> {
hs.into_iter()
.flat_map(|a| a.headers.into_iter())
.map(|h| {
let name = h.name.parse::<HeaderName>()?;
let value = HeaderValue::from_bytes(&h.value)?;
Ok((name, value))
})
.collect()
}

let add = to_pairs(rhm.add)?;
let set = to_pairs(rhm.set)?;
let remove = rhm
Expand All @@ -99,4 +73,17 @@ pub mod proto {
Ok(ModifyHeader { add, set, remove })
}
}

fn to_pairs(
hs: Option<http_types::Headers>,
) -> Result<Vec<(HeaderName, HeaderValue)>, InvalidModifyHeader> {
hs.into_iter()
.flat_map(|a| a.headers.into_iter())
.map(|h| {
let name = h.name.parse::<HeaderName>()?;
let value = HeaderValue::from_bytes(&h.value)?;
Ok((name, value))
})
.collect()
}
}

0 comments on commit 6f6be6e

Please sign in to comment.