shorten code a tiny bit

Ends up with a rather long pattern guard but does avoid the return
case duplication...

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
This commit is contained in:
Wolfgang Bumiller 2023-08-17 14:03:52 +02:00
parent 70bca12324
commit a9f5360b82

View File

@ -565,10 +565,9 @@ impl Extractor {
match nix::unistd::symlinkat(link, Some(parent), file_name) {
Ok(()) => {}
Err(err @ nix::errno::Errno::EEXIST) => {
if !self.overwrite_flags.contains(OverwriteFlags::SYMLINK) {
return Err(err.into());
}
Err(nix::errno::Errno::EEXIST)
if self.overwrite_flags.contains(OverwriteFlags::SYMLINK) =>
{
// Never unlink directories
let flag = nix::unistd::UnlinkatFlags::NoRemoveDir;
nix::unistd::unlinkat(Some(parent), file_name, flag)?;
@ -605,10 +604,9 @@ impl Extractor {
match dolink() {
Ok(()) => {}
Err(err @ nix::errno::Errno::EEXIST) => {
if !self.overwrite_flags.contains(OverwriteFlags::HARDLINK) {
return Err(err.into());
}
Err(nix::errno::Errno::EEXIST)
if self.overwrite_flags.contains(OverwriteFlags::HARDLINK) =>
{
// Never unlink directories
let flag = nix::unistd::UnlinkatFlags::NoRemoveDir;
nix::unistd::unlinkat(Some(parent), file_name, flag)?;