mime: M,
mtu: u32,
data: &[u8],
- out: &mut OUT,
addr_chk: AC,
+ mut out: OUT,
mut error_handler: EH
-) where OUT: Extend<Box<[u8]>>,
- AC: Fn(&[u8]) -> Result<(), PacketError> + Copy,
+) where AC: Fn(&[u8]) -> Result<(), PacketError> + Copy,
+ OUT: FnMut(Box<[u8]>),
EH: FnMut(PacketError),
{
// eprintln!("before: {:?}", DumpHex(data));
match check1(mime, mtu, packet, addr_chk) {
Err(PacketError::Empty) => { }
Err(e) => { err=true; error_handler(e); },
- Ok(packet) => { ok=true; out.extend(iter::once(packet)); },
+ Ok(packet) => { ok=true; out(packet); },
}
}
// eprintln!(" after: {:?}", DumpHex(data));