Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
let mut meta = MetadataFieldIterator::new(comp.payload_start);
- let client: ClientName = meta.need().context("client addr")?;
+ let client: ClientName = meta.need_parse().context("client addr")?;
+ let token: &str = meta.need_next().context("token")?;
+
// let client = all_clients.get(&client).ok_or_else(|| anyhow!(BAD_CLIENT))?;
eprintln!("boundary={:?} start={} name={:?} client={}",
} }
#[throws(AE)]
- pub fn need<T>(&mut self) -> T
+ pub fn need_next(&mut self) -> &'b str
+ {
+ self.next().ok_or_else(|| anyhow!("missing"))??
+ }
+
+ #[throws(AE)]
+ pub fn need_parse<T>(&mut self) -> T
where T: FromStr,
AE: From<T::Err>,
{