From 51bd0ad1ef5e012156288a6a6239d3471de48990 Mon Sep 17 00:00:00 2001 From: asonix Date: Fri, 17 Jan 2020 16:59:42 -0600 Subject: [PATCH] Implement DigestVerify for Tuples --- .../src/digest/mod.rs | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/http-signature-normalization-warp/src/digest/mod.rs b/http-signature-normalization-warp/src/digest/mod.rs index bc8977e..9ad7caa 100644 --- a/http-signature-normalization-warp/src/digest/mod.rs +++ b/http-signature-normalization-warp/src/digest/mod.rs @@ -105,6 +105,39 @@ where } } +impl DigestVerify for (T, U) +where + T: DigestVerify, + U: DigestVerify, +{ + fn verify(&mut self, parts: &[DigestPart], payload: &[u8]) -> bool { + self.0.verify(parts, payload) || self.1.verify(parts, payload) + } +} + +impl DigestVerify for (T, U, V) +where + T: DigestVerify, + U: DigestVerify, + V: DigestVerify, +{ + fn verify(&mut self, parts: &[DigestPart], payload: &[u8]) -> bool { + self.0.verify(parts, payload) || self.1.verify(parts, payload) || self.2.verify(parts, payload) + } +} + +impl DigestVerify for (T, U, V, W) +where + T: DigestVerify, + U: DigestVerify, + V: DigestVerify, + W: DigestVerify, +{ + fn verify(&mut self, parts: &[DigestPart], payload: &[u8]) -> bool { + self.0.verify(parts, payload) || self.1.verify(parts, payload) || self.2.verify(parts, payload) || self.3.verify(parts, payload) + } +} + impl FromStr for DigestPart { type Err = ParseDigestError;