From: Ian Jackson Date: Sun, 8 Aug 2021 19:49:42 +0000 (+0100) Subject: server: MetadataFieldIterator::parse X-Git-Tag: hippotat/1.0.0~195 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=hippotat.git;a=commitdiff_plain;h=ec3b224d02c390fec097ce6c6816eefda6615355 server: MetadataFieldIterator::parse Signed-off-by: Ian Jackson --- diff --git a/src/multipart.rs b/src/multipart.rs index 112712b..3f918b7 100644 --- a/src/multipart.rs +++ b/src/multipart.rs @@ -86,6 +86,15 @@ impl<'b> MetadataFieldIterator<'b> { last: Some(0), iter: memchr::Memchr::new(b'\n', buf), } } + + #[throws(AE)] + pub fn parse(&mut self) -> Option + where T: FromStr, + T::Err: std::error::Error + Sync + Send + 'static, + { + let s = if let Some(r) = self.next() { r? } else { return None }; + Some(s.parse()?) + } } impl<'b> Iterator for MetadataFieldIterator<'b> {