From 7d532553ae18bfff1bec9e0df3fa66313073e3dd Mon Sep 17 00:00:00 2001 From: Marc Pervaz Boocha Date: Thu, 15 May 2025 17:56:07 +0530 Subject: Add raw API --- encoding.go | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'encoding.go') diff --git a/encoding.go b/encoding.go index a8778ab..48d0d57 100644 --- a/encoding.go +++ b/encoding.go @@ -231,12 +231,14 @@ func (d *decoder) DecodeStore(s *store) error { return nil } -func (s *store) Snapshot(w io.WriteSeeker) error { +func (s *store) Snapshot(w io.Writer) error { s.Lock.RLock() defer s.Lock.RUnlock() - if _, err := w.Seek(0, io.SeekStart); err != nil { - return err + if seeker, ok := w.(io.Seeker); ok { + if _, err := seeker.Seek(0, io.SeekStart); err != nil { + return err + } } wr := newEncoder(w) @@ -249,9 +251,11 @@ func (s *store) Snapshot(w io.WriteSeeker) error { return wr.Flush() } -func (s *store) LoadSnapshot(r io.ReadSeeker) error { - if _, err := r.Seek(0, io.SeekStart); err != nil { - return err +func (s *store) LoadSnapshot(r io.Reader) error { + if seeker, ok := r.(io.Seeker); ok { + if _, err := seeker.Seek(0, io.SeekStart); err != nil { + return err + } } d := newDecoder(r) -- cgit v1.2.3-70-g09d2