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 E47C1B8B94 for ; Mon, 11 Mar 2024 14:22:45 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id C59EA96A4 for ; Mon, 11 Mar 2024 14:22:15 +0100 (CET) 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 for ; Mon, 11 Mar 2024 14:22:13 +0100 (CET) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id E15D4488EE for ; Mon, 11 Mar 2024 14:22:12 +0100 (CET) Date: Mon, 11 Mar 2024 14:22:06 +0100 From: Fabian =?iso-8859-1?q?Gr=FCnbichler?= To: Proxmox Backup Server development discussion References: <20240305092703.126906-1-c.ebner@proxmox.com> <20240305092703.126906-10-c.ebner@proxmox.com> In-Reply-To: <20240305092703.126906-10-c.ebner@proxmox.com> MIME-Version: 1.0 User-Agent: astroid/0.16.0 (https://github.com/astroidmail/astroid) Message-Id: <1710162739.scaemiackd.astroid@yuna.none> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-SPAM-LEVEL: Spam detection results: 0 AWL 0.066 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy 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 T_SCC_BODY_TEXT_LINE -0.01 - Subject: Re: [pbs-devel] [RFC v2 pxar 09/36] encoder: add payload advance capability 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: Mon, 11 Mar 2024 13:22:45 -0000 On March 5, 2024 10:26 am, Christian Ebner wrote: > Allows to advance the payload writer position by a given size. > This is used to update the encoders payload input position when > injecting reused chunks for files with unchanged metadata. >=20 > Signed-off-by: Christian Ebner > --- > changes since version 1: > - no changes >=20 > src/encoder/aio.rs | 5 +++++ > src/encoder/mod.rs | 6 ++++++ > src/encoder/sync.rs | 5 +++++ > 3 files changed, 16 insertions(+) >=20 > diff --git a/src/encoder/aio.rs b/src/encoder/aio.rs > index 97fee25..dc926b8 100644 > --- a/src/encoder/aio.rs > +++ b/src/encoder/aio.rs > @@ -117,6 +117,11 @@ impl<'a, T: SeqWrite + 'a> Encoder<'a, T> { > .await > } > =20 > + /// Add size to payload stream > + pub fn advance(&mut self, size: u64) -> io::Result<()> { > + self.inner.advance(size) > + } > + > /// Create a new subdirectory. Note that the subdirectory has to be = finished by calling the > /// `finish()` method, otherwise the entire archive will be in an er= ror state. > pub async fn create_directory>( > diff --git a/src/encoder/mod.rs b/src/encoder/mod.rs > index 6cbd56f..c90a526 100644 > --- a/src/encoder/mod.rs > +++ b/src/encoder/mod.rs > @@ -519,6 +519,12 @@ impl<'a, T: SeqWrite + 'a> EncoderImpl<'a, T> { > Ok(()) > } > =20 > + /// Add size to payload stream > + pub fn advance(&mut self, size: u64) -> io::Result<()> { > + self.state_mut()?.payload_write_position +=3D size; so isn't this in fact a PayloadOffset then (like it is returned as in the corresponding getter)? and isn't the size then actually another offset as well? would maybe make it easier to avoid "holding it wrong" (i.e., passing in some other u64), or at least, force to wrap it in PayloadOffset which hopefully entails double-checking that that makes sense ;) > + Ok(()) > + } > + > /// Return a file offset usable with `add_hardlink`. > pub async fn add_symlink( > &mut self, > diff --git a/src/encoder/sync.rs b/src/encoder/sync.rs > index cf10bce..c462c93 100644 > --- a/src/encoder/sync.rs > +++ b/src/encoder/sync.rs > @@ -121,6 +121,11 @@ impl<'a, T: SeqWrite + 'a> Encoder<'a, T> { > )) > } > =20 > + /// Add size to payload stream > + pub fn advance(&mut self, size: u64) -> io::Result<()> { > + self.inner.advance(size) > + } same here > + > /// Create a new subdirectory. Note that the subdirectory has to be = finished by calling the > /// `finish()` method, otherwise the entire archive will be in an er= ror state. > pub fn create_directory>( > --=20 > 2.39.2 >=20 >=20 >=20 > _______________________________________________ > pbs-devel mailing list > pbs-devel@lists.proxmox.com > https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel >=20 >=20 >=20