mirror of
git://git.proxmox.com/git/pxar.git
synced 2025-03-11 20:58:47 +03:00
encoder: flush after writing last entry
some writers may need to be flushed to write out all data Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
This commit is contained in:
parent
737f75cf97
commit
d995b5319d
@ -83,6 +83,13 @@ async fn seq_write<T: SeqWrite + ?Sized>(
|
||||
Ok(put)
|
||||
}
|
||||
|
||||
/// awaitable version of 'poll_flush'.
|
||||
async fn flush<T: SeqWrite + ?Sized>(
|
||||
output: &mut T,
|
||||
) -> io::Result<()> {
|
||||
poll_fn(|cx| unsafe { Pin::new_unchecked(&mut *output).poll_flush(cx) }).await
|
||||
}
|
||||
|
||||
/// Write the entire contents of a buffer, handling short writes.
|
||||
async fn seq_write_all<T: SeqWrite + ?Sized>(
|
||||
output: &mut T,
|
||||
@ -715,6 +722,8 @@ impl<'a, T: SeqWrite + 'a> EncoderImpl<'a, T> {
|
||||
)
|
||||
.await?;
|
||||
|
||||
flush(self.output.as_mut()).await?;
|
||||
|
||||
// done up here because of the self-borrow and to propagate
|
||||
let end_offset = self.position();
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user