From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 71F5D77DFA for ; Thu, 29 Apr 2021 11:17:56 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 6F96E1904D for ; Thu, 29 Apr 2021 11:17:56 +0200 (CEST) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS id DCF161903F for ; Thu, 29 Apr 2021 11:17:55 +0200 (CEST) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id B6F7742E58 for ; Thu, 29 Apr 2021 11:17:55 +0200 (CEST) To: Proxmox Backup Server development discussion , Wolfgang Bumiller References: <20210422140213.30989-1-w.bumiller@proxmox.com> <20210422140213.30989-9-w.bumiller@proxmox.com> From: Dietmar Maurer Message-ID: <0c1d93e9-0c4b-6fd2-f265-fb515bd2a3b3@proxmox.com> Date: Thu, 29 Apr 2021 11:17:55 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.0 MIME-Version: 1.0 In-Reply-To: <20210422140213.30989-9-w.bumiller@proxmox.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-SPAM-LEVEL: Spam detection results: 0 AWL 0.339 Adjusted score from AWL reputation of From: address KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pbs-devel] applied: [PATCH v2 backup 08/27] catalog shell: replace LoopState with ControlFlow X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Apr 2021 09:17:56 -0000 applied On 4/22/21 4:01 PM, Wolfgang Bumiller wrote: > Signed-off-by: Wolfgang Bumiller > --- > src/backup/catalog_shell.rs | 18 +++++++----------- > 1 file changed, 7 insertions(+), 11 deletions(-) > > diff --git a/src/backup/catalog_shell.rs b/src/backup/catalog_shell.rs > index 00b5b580..11866c30 100644 > --- a/src/backup/catalog_shell.rs > +++ b/src/backup/catalog_shell.rs > @@ -19,9 +19,10 @@ use proxmox::tools::fs::{create_path, CreateOptions}; > use pxar::{EntryKind, Metadata}; > > use crate::backup::catalog::{self, DirEntryAttribute}; > -use crate::pxar::Flags; > use crate::pxar::fuse::{Accessor, FileEntry}; > +use crate::pxar::Flags; > use crate::tools::runtime::block_in_place; > +use crate::tools::ControlFlow; > > type CatalogReader = crate::backup::CatalogReader; > > @@ -998,11 +999,6 @@ impl Shell { > } > } > > -enum LoopState { > - Break, > - Continue, > -} > - > struct ExtractorState<'a> { > path: Vec, > path_len: usize, > @@ -1060,8 +1056,8 @@ impl<'a> ExtractorState<'a> { > let entry = match self.read_dir.next() { > Some(entry) => entry, > None => match self.handle_end_of_directory()? { > - LoopState::Break => break, // done with root directory > - LoopState::Continue => continue, > + ControlFlow::Break(()) => break, // done with root directory > + ControlFlow::Continue(()) => continue, > }, > }; > > @@ -1079,11 +1075,11 @@ impl<'a> ExtractorState<'a> { > Ok(()) > } > > - fn handle_end_of_directory(&mut self) -> Result { > + fn handle_end_of_directory(&mut self) -> Result, Error> { > // go up a directory: > self.read_dir = match self.read_dir_stack.pop() { > Some(r) => r, > - None => return Ok(LoopState::Break), // out of root directory > + None => return Ok(ControlFlow::Break(())), // out of root directory > }; > > self.matches = self > @@ -1102,7 +1098,7 @@ impl<'a> ExtractorState<'a> { > > self.extractor.leave_directory()?; > > - Ok(LoopState::Continue) > + Ok(ControlFlow::CONTINUE) > } > > async fn handle_new_directory(