From: Wolfgang Bumiller Date: Fri, 5 Jun 2020 13:05:12 +0000 (+0200) Subject: encoder: only provide a LinkOffset on regular files X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=501ea22023ec5c841941a05630d1a037e60c68ad;p=pxar.git encoder: only provide a LinkOffset on regular files Signed-off-by: Wolfgang Bumiller --- diff --git a/src/encoder/aio.rs b/src/encoder/aio.rs index 5a337d2..75568cf 100644 --- a/src/encoder/aio.rs +++ b/src/encoder/aio.rs @@ -138,7 +138,7 @@ impl<'a, T: SeqWrite + 'a> Encoder<'a, T> { metadata: &Metadata, file_name: PF, target: PT, - ) -> io::Result { + ) -> io::Result<()> { self.inner .add_symlink(metadata, file_name.as_ref(), target.as_ref()) .await @@ -162,7 +162,7 @@ impl<'a, T: SeqWrite + 'a> Encoder<'a, T> { metadata: &Metadata, file_name: P, device: format::Device, - ) -> io::Result { + ) -> io::Result<()> { self.inner .add_device(metadata, file_name.as_ref(), device) .await @@ -173,7 +173,7 @@ impl<'a, T: SeqWrite + 'a> Encoder<'a, T> { &mut self, metadata: &Metadata, file_name: P, - ) -> io::Result { + ) -> io::Result<()> { self.inner.add_fifo(metadata, file_name.as_ref()).await } @@ -182,7 +182,7 @@ impl<'a, T: SeqWrite + 'a> Encoder<'a, T> { &mut self, metadata: &Metadata, file_name: P, - ) -> io::Result { + ) -> io::Result<()> { self.inner.add_socket(metadata, file_name.as_ref()).await } } diff --git a/src/encoder/mod.rs b/src/encoder/mod.rs index 79f6db5..d05a860 100644 --- a/src/encoder/mod.rs +++ b/src/encoder/mod.rs @@ -348,13 +348,14 @@ impl<'a, T: SeqWrite + 'a> EncoderImpl<'a, T> { metadata: &Metadata, file_name: &Path, target: &Path, - ) -> io::Result { - self.add_file_entry( + ) -> io::Result<()> { + let _ofs: LinkOffset = self.add_file_entry( Some(metadata), file_name, Some((format::PXAR_SYMLINK, target.as_os_str().as_bytes())), ) - .await + .await?; + Ok(()) } /// Return a file offset usable with `add_hardlink`. @@ -389,7 +390,7 @@ impl<'a, T: SeqWrite + 'a> EncoderImpl<'a, T> { metadata: &Metadata, file_name: &Path, device: format::Device, - ) -> io::Result { + ) -> io::Result<()> { if !metadata.is_device() { io_bail!("entry added via add_device must have a device mode in its metadata"); } @@ -401,30 +402,33 @@ impl<'a, T: SeqWrite + 'a> EncoderImpl<'a, T> { size_of::(), ) }; - self.add_file_entry( + let _ofs: LinkOffset = self.add_file_entry( Some(metadata), file_name, Some((format::PXAR_DEVICE, device)), ) - .await + .await?; + Ok(()) } /// Return a file offset usable with `add_hardlink`. - pub async fn add_fifo(&mut self, metadata: &Metadata, file_name: &Path) -> io::Result { + pub async fn add_fifo(&mut self, metadata: &Metadata, file_name: &Path) -> io::Result<()> { if !metadata.is_fifo() { io_bail!("entry added via add_device must be of type fifo in its metadata"); } - self.add_file_entry(Some(metadata), file_name, None).await + let _ofs: LinkOffset = self.add_file_entry(Some(metadata), file_name, None).await?; + Ok(()) } /// Return a file offset usable with `add_hardlink`. - pub async fn add_socket(&mut self, metadata: &Metadata, file_name: &Path) -> io::Result { + pub async fn add_socket(&mut self, metadata: &Metadata, file_name: &Path) -> io::Result<()> { if !metadata.is_socket() { io_bail!("entry added via add_device must be of type socket in its metadata"); } - self.add_file_entry(Some(metadata), file_name, None).await + let _ofs: LinkOffset = self.add_file_entry(Some(metadata), file_name, None).await?; + Ok(()) } /// Return a file offset usable with `add_hardlink`. diff --git a/src/encoder/sync.rs b/src/encoder/sync.rs index d32d8f6..5d3696f 100644 --- a/src/encoder/sync.rs +++ b/src/encoder/sync.rs @@ -119,7 +119,7 @@ impl<'a, T: SeqWrite + 'a> Encoder<'a, T> { metadata: &Metadata, file_name: PF, target: PT, - ) -> io::Result { + ) -> io::Result<()> { poll_result_once( self.inner .add_symlink(metadata, file_name.as_ref(), target.as_ref()), @@ -142,7 +142,7 @@ impl<'a, T: SeqWrite + 'a> Encoder<'a, T> { metadata: &Metadata, file_name: P, device: format::Device, - ) -> io::Result { + ) -> io::Result<()> { poll_result_once(self.inner.add_device(metadata, file_name.as_ref(), device)) } @@ -151,7 +151,7 @@ impl<'a, T: SeqWrite + 'a> Encoder<'a, T> { &mut self, metadata: &Metadata, file_name: P, - ) -> io::Result { + ) -> io::Result<()> { poll_result_once(self.inner.add_fifo(metadata, file_name.as_ref())) } @@ -160,7 +160,7 @@ impl<'a, T: SeqWrite + 'a> Encoder<'a, T> { &mut self, metadata: &Metadata, file_name: P, - ) -> io::Result { + ) -> io::Result<()> { poll_result_once(self.inner.add_socket(metadata, file_name.as_ref())) } }