diff options
author | Marc Pervaz Boocha <marcpervaz@qburst.com> | 2025-05-15 17:56:07 +0530 |
---|---|---|
committer | Marc Pervaz Boocha <marcpervaz@qburst.com> | 2025-05-15 17:56:07 +0530 |
commit | 7d532553ae18bfff1bec9e0df3fa66313073e3dd (patch) | |
tree | 796a7fe86da764f51648b1337011baeaaf53421b /encoding.go | |
parent | Lint and bug fixes (diff) | |
download | cache-7d532553ae18bfff1bec9e0df3fa66313073e3dd.tar cache-7d532553ae18bfff1bec9e0df3fa66313073e3dd.tar.gz cache-7d532553ae18bfff1bec9e0df3fa66313073e3dd.tar.bz2 cache-7d532553ae18bfff1bec9e0df3fa66313073e3dd.tar.lz cache-7d532553ae18bfff1bec9e0df3fa66313073e3dd.tar.xz cache-7d532553ae18bfff1bec9e0df3fa66313073e3dd.tar.zst cache-7d532553ae18bfff1bec9e0df3fa66313073e3dd.zip |
Add raw API
Diffstat (limited to 'encoding.go')
-rw-r--r-- | encoding.go | 16 |
1 files changed, 10 insertions, 6 deletions
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) |