#[derive(Debug)]
pub struct Component<'b> {
pub name: PartName,
- pub payload_start: &'b [u8],
+ pub payload: &'b [u8],
}
#[derive(Debug)]
pub type BoundaryFinder = memchr::memmem::Finder<'static>;
#[throws(AE)]
-pub fn process_component<'b>(warnings: &mut Warnings,
- after_leader: &'b [u8], expected: PartName)
- -> Option<Component<'b>> {
+/// Processes the start of a component (or terminating boundary).
+///
+/// Returned payload is only the start of the payload; the next
+/// boundary has not been identified.
+pub fn process_boundary<'b>(warnings: &mut Warnings,
+ after_leader: &'b [u8], expected: PartName)
+ -> Option<Component<'b>> {
let rhs = after_leader;
let mut rhs =
if let Some(rhs) = rhs.strip_prefix(b"\r\n") { rhs }
};
}
- Some(Component { name: part_name.unwrap_or(expected), payload_start: rhs })
+ Some(Component { name: part_name.unwrap_or(expected), payload: rhs })
}
pub struct MetadataFieldIterator<'b> {