chiark / gitweb /
server: MetadataFieldIterator::need
[hippotat.git] / src / multipart.rs
index 4ebff64f7a89b42df341873d74d6b3b85e958d32..5099f05fe120b24fb9974060e599dd631f7774bc 100644 (file)
@@ -87,6 +87,14 @@ impl<'b> MetadataFieldIterator<'b> {
     iter: memchr::Memchr::new(b'\n', buf),
   } }
 
+  #[throws(AE)]
+  pub fn need<T>(&mut self) -> T
+  where T: FromStr,
+        T::Err: std::error::Error + Sync + Send + 'static,
+  {
+    self.parse()?.ok_or_else(|| anyhow!("missing"))?
+  }
+
   #[throws(AE)]
   pub fn parse<T>(&mut self) -> Option<T>
   where T: FromStr,