diff options
author | edef <edef@edef.eu> | 2024-04-25T23·14+0000 |
---|---|---|
committer | edef <edef@edef.eu> | 2024-04-25T23·47+0000 |
commit | 89316b22bc4eb2ecadc63e2129648d2282b55174 (patch) | |
tree | d076532d397b86d14e4fa9fddd558c29a1d20d3b /tvix/nix-compat/src/wire | |
parent | ba46b1818a5065fd84d969bc4bf2e6f7aa98d9c7 (diff) |
refactor(nix-compat/wire): move BytesPacketPosition into writer r/8013
We don't use it in the reader anymore. Change-Id: I98fe204a747711464e9e7ca17df06fa9854eb344 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11519 Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
Diffstat (limited to 'tvix/nix-compat/src/wire')
-rw-r--r-- | tvix/nix-compat/src/wire/bytes/mod.rs | 19 | ||||
-rw-r--r-- | tvix/nix-compat/src/wire/bytes/writer.rs | 18 |
2 files changed, 17 insertions, 20 deletions
diff --git a/tvix/nix-compat/src/wire/bytes/mod.rs b/tvix/nix-compat/src/wire/bytes/mod.rs index 9ec8b3fa0439..0c637e6c3921 100644 --- a/tvix/nix-compat/src/wire/bytes/mod.rs +++ b/tvix/nix-compat/src/wire/bytes/mod.rs @@ -132,25 +132,6 @@ fn padding_len(len: u64) -> u8 { } } -/// Models the position inside a "bytes wire packet" that the reader or writer -/// is in. -/// It can be in three different stages, inside size, payload or padding fields. -/// The number tracks the number of bytes written inside the specific field. -/// There shall be no ambiguous states, at the end of a stage we immediately -/// move to the beginning of the next one: -/// - Size(LEN_SIZE) must be expressed as Payload(0) -/// - Payload(self.payload_len) must be expressed as Padding(0) -/// There's one exception - Size(LEN_SIZE) in the reader represents a failure -/// state we enter in case the allowed size doesn't match the allowed range. -/// -/// Padding(padding_len) means we're at the end of the bytes wire packet. -#[derive(Clone, Debug, PartialEq, Eq)] -enum BytesPacketPosition { - Size(usize), - Payload(u64), - Padding(usize), -} - #[cfg(test)] mod tests { use tokio_test::{assert_ok, io::Builder}; diff --git a/tvix/nix-compat/src/wire/bytes/writer.rs b/tvix/nix-compat/src/wire/bytes/writer.rs index 347934b3dc8f..f5632771e961 100644 --- a/tvix/nix-compat/src/wire/bytes/writer.rs +++ b/tvix/nix-compat/src/wire/bytes/writer.rs @@ -3,7 +3,7 @@ use std::task::{ready, Poll}; use tokio::io::AsyncWrite; -use super::{padding_len, BytesPacketPosition, EMPTY_BYTES, LEN_SIZE}; +use super::{padding_len, EMPTY_BYTES, LEN_SIZE}; pin_project! { /// Writes a "bytes wire packet" to the underlying writer. @@ -41,6 +41,22 @@ pin_project! { } } +/// Models the position inside a "bytes wire packet" that the writer is in. +/// It can be in three different stages, inside size, payload or padding fields. +/// The number tracks the number of bytes written inside the specific field. +/// There shall be no ambiguous states, at the end of a stage we immediately +/// move to the beginning of the next one: +/// - Size(LEN_SIZE) must be expressed as Payload(0) +/// - Payload(self.payload_len) must be expressed as Padding(0) +/// +/// Padding(padding_len) means we're at the end of the bytes wire packet. +#[derive(Clone, Debug, PartialEq, Eq)] +enum BytesPacketPosition { + Size(usize), + Payload(u64), + Padding(usize), +} + impl<W> BytesWriter<W> where W: AsyncWrite, |