Skip to content

Commit 2aea6bb

Browse files
committed
deconstruct
1 parent e197504 commit 2aea6bb

File tree

1 file changed

+35
-30
lines changed
  • rs/https_outcalls/consensus/src/payload_builder

1 file changed

+35
-30
lines changed

rs/https_outcalls/consensus/src/payload_builder/parse.rs

Lines changed: 35 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -37,39 +37,44 @@ pub(crate) fn bytes_to_payload(data: &[u8]) -> Result<CanisterHttpPayload, Proxy
3737
}
3838

3939
pub(crate) fn payload_to_bytes(payload: CanisterHttpPayload, max_size: NumBytes) -> Vec<u8> {
40-
let message_iterator = payload
41-
.timeouts
42-
.into_iter()
43-
.map(|timeout| CanisterHttpResponseMessage {
44-
message_type: Some(MessageType::Timeout(timeout.get())),
45-
})
46-
.chain(payload.divergence_responses.into_iter().map(|response| {
47-
CanisterHttpResponseMessage {
48-
message_type: Some(MessageType::DivergenceResponse(
49-
pb::CanisterHttpResponseDivergence::from(response),
50-
)),
51-
}
52-
}))
53-
.chain(
54-
payload
55-
.responses
56-
.into_iter()
57-
.map(|response| CanisterHttpResponseMessage {
58-
message_type: Some(MessageType::Response(
59-
pb::CanisterHttpResponseWithConsensus::from(response),
60-
)),
61-
}),
62-
)
63-
.chain(
64-
payload
65-
.flexible_responses
66-
.into_iter()
67-
.map(|flex_responses| CanisterHttpResponseMessage {
40+
let CanisterHttpPayload {
41+
timeouts,
42+
divergence_responses,
43+
responses,
44+
flexible_responses,
45+
} = payload;
46+
47+
let message_iterator =
48+
timeouts
49+
.into_iter()
50+
.map(|timeout| CanisterHttpResponseMessage {
51+
message_type: Some(MessageType::Timeout(timeout.get())),
52+
})
53+
.chain(
54+
divergence_responses
55+
.into_iter()
56+
.map(|response| CanisterHttpResponseMessage {
57+
message_type: Some(MessageType::DivergenceResponse(
58+
pb::CanisterHttpResponseDivergence::from(response),
59+
)),
60+
}),
61+
)
62+
.chain(
63+
responses
64+
.into_iter()
65+
.map(|response| CanisterHttpResponseMessage {
66+
message_type: Some(MessageType::Response(
67+
pb::CanisterHttpResponseWithConsensus::from(response),
68+
)),
69+
}),
70+
)
71+
.chain(flexible_responses.into_iter().map(|flex_responses| {
72+
CanisterHttpResponseMessage {
6873
message_type: Some(MessageType::FlexibleResponses(
6974
pb::FlexibleCanisterHttpResponses::from(flex_responses),
7075
)),
71-
}),
72-
);
76+
}
77+
}));
7378

7479
iterator_to_bytes(message_iterator, max_size)
7580
}

0 commit comments

Comments
 (0)