pub fn copy_io_callback<R, W, FCallback>(
    reader: &mut R,
    writer: &mut W,
    total: i64,
    print_status_context: &mut PrintStatusContext,
    callback: &mut FCallback
) -> Result<u64>
where R: Read + ?Sized, W: Write + ?Sized, FCallback: Fn(i64, u64, usize, &mut PrintStatusContext),