summaryrefslogtreecommitdiffstats
path: root/encoding.go
diff options
context:
space:
mode:
authorMarc Pervaz Boocha <marcpervaz@qburst.com>2025-05-15 17:56:07 +0530
committerMarc Pervaz Boocha <marcpervaz@qburst.com>2025-05-15 17:56:07 +0530
commit7d532553ae18bfff1bec9e0df3fa66313073e3dd (patch)
tree796a7fe86da764f51648b1337011baeaaf53421b /encoding.go
parentLint and bug fixes (diff)
downloadcache-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 '')
-rw-r--r--encoding.go16
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)