This is an automated email from the ASF dual-hosted git repository.

tison pushed a commit to branch check-seed
in repository https://gitbox.apache.org/repos/asf/datasketches-rust.git

commit dbf7f65612a5ac50ede239c7579d4fb6329f8b79
Author: tison <[email protected]>
AuthorDate: Sun Feb 8 16:53:56 2026 +0800

    chore: check seed for CpcSketch and CountMinSketch
    
    Signed-off-by: tison <[email protected]>
---
 datasketches/src/hash/mod.rs | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/datasketches/src/hash/mod.rs b/datasketches/src/hash/mod.rs
index 492e45e..87eaf22 100644
--- a/datasketches/src/hash/mod.rs
+++ b/datasketches/src/hash/mod.rs
@@ -39,15 +39,21 @@ pub(crate) const DEFAULT_UPDATE_SEED: u64 = 9001;
 
 /// Computes and checks the 16-bit seed hash from the given long seed.
 ///
-/// The seed hash may not be zero in order to maintain compatibility with 
older serialized
-/// versions that did not have this concept.
+/// The computed seed hash must not be zero in order to maintain compatibility 
with older
+/// serialized versions that did not have this concept.
+///
+/// # Panics
+///
+/// Panics if the computed seed hash is zero.
 pub(crate) fn compute_seed_hash(seed: u64) -> u16 {
     use std::hash::Hasher;
 
     let mut hasher = MurmurHash3X64128::with_seed(0);
     hasher.write(&seed.to_le_bytes());
     let (h1, _) = hasher.finish128();
-    (h1 & 0xffff) as u16
+    let seed_hash = (h1 & 0xffff) as u16;
+    assert_ne!(seed_hash, 0);
+    seed_hash
 }
 
 /// Reads an u64 from a byte slice in little-endian order.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to