From 3ec3d9568218f1351d636ee8dedac29080ad8d8e Mon Sep 17 00:00:00 2001 From: Kasim Fejzic Date: Thu, 18 Dec 2025 23:05:08 +0100 Subject: [PATCH 1/4] docs: introduce missing documentation enforced by clippy::missing_docs_in_private_items --- trafix-codec/src/constants/mod.rs | 2 ++ trafix-codec/src/decoder/decode.rs | 24 +++++++++++++++++++++--- trafix-codec/src/decoder/mod.rs | 2 ++ trafix-codec/src/decoder/num.rs | 2 ++ trafix-codec/src/digest.rs | 4 ++++ trafix-codec/src/lib.rs | 3 ++- 6 files changed, 33 insertions(+), 4 deletions(-) diff --git a/trafix-codec/src/constants/mod.rs b/trafix-codec/src/constants/mod.rs index 47755da..c181ca6 100644 --- a/trafix-codec/src/constants/mod.rs +++ b/trafix-codec/src/constants/mod.rs @@ -1,3 +1,5 @@ +//! Constants used during encoding and decoding. + /// ASCII SOH delimiter (0x01) used as field terminator in FIX messages. pub(crate) const SOH: u8 = b'\x01'; diff --git a/trafix-codec/src/decoder/decode.rs b/trafix-codec/src/decoder/decode.rs index e0f8f1d..cc53d34 100644 --- a/trafix-codec/src/decoder/decode.rs +++ b/trafix-codec/src/decoder/decode.rs @@ -47,7 +47,13 @@ pub enum Error { #[error( "calculated and expected checksums don't match 'calculated({calculated}) != ({expected})'" )] - ChecksumMismatch { calculated: u8, expected: u8 }, + ChecksumMismatch { + /// Checksum calculated from the message. + calculated: u8, + + /// Expected checksum as per the FIX protocols defined algorithm. + expected: u8, + }, /// Message contains invalid tag values. #[error("invalid tag: {}", .0)] @@ -55,7 +61,13 @@ pub enum Error { /// Message body length does not match what was received. #[error("expected body length {expected} but received {received} bytes")] - BodyLength { received: usize, expected: usize }, + BodyLength { + /// `BodyLength` received in the message. + received: usize, + + /// Expected `BodyLength` as per the FIX protocols defined algorithm. + expected: usize, + }, /// Message contains invalid bytes. #[error("encountered error while parsing tokens: {}", .0)] @@ -71,7 +83,13 @@ pub enum Error { pub enum LexError { /// Found different byte than what was expected. #[error("Expected '{expected}' but got {but_got}")] - Unexpected { expected: u8, but_got: u8 }, + Unexpected { + /// Byte value that was expected at the current lexer position. + expected: u8, + + /// Byte value that was encountered instead of the expected one. + but_got: u8, + }, /// EOI reached but not expected. #[error("Unexpected end of input")] diff --git a/trafix-codec/src/decoder/mod.rs b/trafix-codec/src/decoder/mod.rs index 3b4d2a8..ec3181c 100644 --- a/trafix-codec/src/decoder/mod.rs +++ b/trafix-codec/src/decoder/mod.rs @@ -1,3 +1,5 @@ +//! Implementation of the Message decoder. + mod decode; pub mod num; diff --git a/trafix-codec/src/decoder/num.rs b/trafix-codec/src/decoder/num.rs index 5e0fcfe..dd641b9 100644 --- a/trafix-codec/src/decoder/num.rs +++ b/trafix-codec/src/decoder/num.rs @@ -1,3 +1,5 @@ +//! Integer parsing utilities for FIX decoding. + /// The error type returned on failed parsing of integers from byte slices. #[derive(Debug, Clone, PartialEq, Eq, thiserror::Error)] pub(crate) enum ParseIntError { diff --git a/trafix-codec/src/digest.rs b/trafix-codec/src/digest.rs index d758394..783def5 100644 --- a/trafix-codec/src/digest.rs +++ b/trafix-codec/src/digest.rs @@ -1,3 +1,5 @@ +//! Implementation of a lightweight, stateful FIX checksum (Digest) calculator. + /// The [`Digest`] maintains a running checksum by performing modulo-256 addition over all /// processed bytes, exactly as defined by the FIX checksum algorithm. This is typically used while /// encoding and decoding FIX messages. @@ -18,6 +20,8 @@ /// ``` #[derive(Default)] pub(crate) struct Digest { + /// Accumulated checksum value computed as the modulo-256 sum of all bytes + /// processed, per the FIX protocol checksum definition. checksum: u8, } diff --git a/trafix-codec/src/lib.rs b/trafix-codec/src/lib.rs index f5dc6cc..5dc4f85 100644 --- a/trafix-codec/src/lib.rs +++ b/trafix-codec/src/lib.rs @@ -1,5 +1,6 @@ #![warn(clippy::pedantic)] #![warn(missing_docs)] +#![warn(clippy::missing_docs_in_private_items)] #![forbid(unsafe_code)] //! `trafix-codec` is a low-level library for high-performance parsing, @@ -9,5 +10,5 @@ mod digest; pub(crate) mod constants; pub(crate) mod decoder; -pub mod encoder; +pub(crate) mod encoder; pub mod message; From 67ee6b7dbb426f31090178d6ae330cabf4abbcb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasim=20Fejzi=C4=87?= Date: Fri, 19 Dec 2025 02:24:10 +0100 Subject: [PATCH 2/4] docs: improve comments MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Nadir Fejzić --- trafix-codec/src/decoder/decode.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/trafix-codec/src/decoder/decode.rs b/trafix-codec/src/decoder/decode.rs index cc53d34..d028b7e 100644 --- a/trafix-codec/src/decoder/decode.rs +++ b/trafix-codec/src/decoder/decode.rs @@ -51,7 +51,7 @@ pub enum Error { /// Checksum calculated from the message. calculated: u8, - /// Expected checksum as per the FIX protocols defined algorithm. + /// Expected checksum that was extracted from the FIX message. expected: u8, }, From 4222b203b9968baaa42b15f3d26c1a9c182f82d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasim=20Fejzi=C4=87?= Date: Fri, 19 Dec 2025 02:24:30 +0100 Subject: [PATCH 3/4] docs: reference `Message` in docs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Nadir Fejzić --- trafix-codec/src/decoder/mod.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/trafix-codec/src/decoder/mod.rs b/trafix-codec/src/decoder/mod.rs index ec3181c..c3eefe2 100644 --- a/trafix-codec/src/decoder/mod.rs +++ b/trafix-codec/src/decoder/mod.rs @@ -1,5 +1,6 @@ -//! Implementation of the Message decoder. - +//! Implementation of the [`Message`] decoder. +//! +//! [`Message`]: crate::message::Message mod decode; pub mod num; From 4a8fa27c8e87d0e7332d0e09aad4f9b14e8adb12 Mon Sep 17 00:00:00 2001 From: Kasim Fejzic Date: Fri, 19 Dec 2025 02:25:49 +0100 Subject: [PATCH 4/4] docs: reference `Message` in encoder docs --- trafix-codec/src/encoder/mod.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/trafix-codec/src/encoder/mod.rs b/trafix-codec/src/encoder/mod.rs index fc233a7..81320af 100644 --- a/trafix-codec/src/encoder/mod.rs +++ b/trafix-codec/src/encoder/mod.rs @@ -1,4 +1,6 @@ -//! Implementation of the Message encoder. +//! Implementation of the [`Message`] encoder. +//! +//! [`Message`]: crate::message::Message use bytes::{BufMut, Bytes, BytesMut};