pub fn write_with_header<T, E, Output, Header, Body>( writer: &mut Output, header: Header, body: Body) -> Result<T, E> where Output: RawOutput<E>, Header: FnOnce(&mut Output, u64) -> Result<(), E>, Body: FnOnce(&mut Output) -> Result<T, E>,