From cf40b4312415c4345e2f9e5f062b0370caf3165a Mon Sep 17 00:00:00 2001 From: jaideeppyne Date: Sat, 19 Sep 2026 14:47:26 +0530 Subject: [PATCH] feat(count): add static sketch deserializer --- count/count_min_sketch.go | 10 +++++++++- count/count_min_sketch_test.go | 4 ++-- examples/count_min_example_test.go | 2 +- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/count/count_min_sketch.go b/count/count_min_sketch.go index 777fb94..9ec0f46 100644 --- a/count/count_min_sketch.go +++ b/count/count_min_sketch.go @@ -261,7 +261,8 @@ func (c *CountMinSketch) Serialize(w io.Writer) error { return nil } -func (c *CountMinSketch) Deserialize(b []byte, seed int64) (*CountMinSketch, error) { +// NewCountMinSketchFromSlice deserializes a Count-Min sketch from a byte slice. +func NewCountMinSketchFromSlice(b []byte, seed int64) (*CountMinSketch, error) { r := bytes.NewReader(b) var err error @@ -354,3 +355,10 @@ func (c *CountMinSketch) Deserialize(b []byte, seed int64) (*CountMinSketch, err return cms, nil } + +// Deserialize deserializes a Count-Min sketch from a byte slice. +// +// Deprecated: use NewCountMinSketchFromSlice instead. +func (c *CountMinSketch) Deserialize(b []byte, seed int64) (*CountMinSketch, error) { + return NewCountMinSketchFromSlice(b, seed) +} diff --git a/count/count_min_sketch_test.go b/count/count_min_sketch_test.go index a167b95..05f3606 100644 --- a/count/count_min_sketch_test.go +++ b/count/count_min_sketch_test.go @@ -275,7 +275,7 @@ func Test_CountMinSketch(t *testing.T) { err = c.Serialize(b) assert.NoError(t, err) - d, err := c.Deserialize(b.Bytes(), seed) + d, err := NewCountMinSketchFromSlice(b.Bytes(), seed) assert.NoError(t, err) assert.Equal(t, c, d) assert.NotEqual(t, &c, d) @@ -290,7 +290,7 @@ func Test_CountMinSketch(t *testing.T) { err = c.Serialize(b) assert.NoError(t, err) - d, err = c.Deserialize(b.Bytes(), seed) + d, err = NewCountMinSketchFromSlice(b.Bytes(), seed) assert.NoError(t, err) assert.Equal(t, c, d) assert.NotEqual(t, &c, d) diff --git a/examples/count_min_example_test.go b/examples/count_min_example_test.go index b49313d..516ecb4 100644 --- a/examples/count_min_example_test.go +++ b/examples/count_min_example_test.go @@ -78,7 +78,7 @@ func TestCountMinSketch(t *testing.T) { err = sketch.Serialize(&buf) assert.NoError(t, err) - restored, err := sketch.Deserialize(buf.Bytes(), seed) + restored, err := count.NewCountMinSketchFromSlice(buf.Bytes(), seed) assert.NoError(t, err) assert.Equal(t, sketch.GetTotalWeight(), restored.GetTotalWeight()) }