From dcd27055ac8920d483a9c4df3ec387f5909658eb Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 4 Jan 2026 14:15:44 +0000 Subject: [PATCH 1/2] Initial plan From 7556f56bbd9b4583a41788d9efbed66d127cb28d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 4 Jan 2026 14:20:08 +0000 Subject: [PATCH 2/2] Fix inconsistent endianness - use little-endian everywhere Co-authored-by: mantono <7093365+mantono@users.noreply.github.com> --- src/id.rs | 10 +++++++++- src/serde.rs | 4 ++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/id.rs b/src/id.rs index f99d677..d26c245 100644 --- a/src/id.rs +++ b/src/id.rs @@ -86,7 +86,7 @@ impl UpperHex for Flake { impl Display for Flake { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - f.write_str(&BASE64.encode(&self.0.to_be_bytes())) + f.write_str(&BASE64.encode(&self.0.to_le_bytes())) } } @@ -108,4 +108,12 @@ mod tests { let ts: u64 = id.timestamp(); assert_eq!(1656452611131, ts); } + + #[test] + fn test_display_uses_little_endian() { + let id = Flake::new(29866156537351941961353716432896); + let display_str = format!("{}", id); + // Display should use little-endian base64 representation + assert_eq!(display_str, "AAAm9J4r0HS/qMH2eAEAAA=="); + } } diff --git a/src/serde.rs b/src/serde.rs index e235f77..db76f63 100644 --- a/src/serde.rs +++ b/src/serde.rs @@ -47,7 +47,7 @@ impl<'de> Visitor<'de> for FlakeVisitor { for (i, byte) in decoded_bytes.iter().take(bytes.len()).enumerate() { bytes[i] = *byte; } - let value = u128::from_be_bytes(bytes); + let value = u128::from_le_bytes(bytes); Ok(Flake::new(value)) } @@ -62,5 +62,5 @@ impl<'de> Visitor<'de> for FlakeVisitor { #[test] fn test_serde() { let id = Flake::new(29866156537351941961353716432896); - assert_tokens(&id, &[Token::String("AAABePbBqL900Cue9CYAAA==")]); + assert_tokens(&id, &[Token::String("AAAm9J4r0HS/qMH2eAEAAA==")]); }