Refactor Restore()

This commit refactors out the complexity of downloading ordered WAL
files in parallel to a type called `WALDownloader`. This makes it
easier to test the restore separately from the download.
This commit is contained in:
Ben Johnson
2022-01-04 14:47:11 -07:00
parent 531e19ed6f
commit 3f0ec9fa9f
130 changed files with 2943 additions and 1254 deletions

View File

@@ -0,0 +1,28 @@
package mock
import (
"github.com/benbjohnson/litestream"
)
type WALSegmentIterator struct {
CloseFunc func() error
NextFunc func() bool
ErrFunc func() error
WALSegmentFunc func() litestream.WALSegmentInfo
}
func (itr *WALSegmentIterator) Close() error {
return itr.CloseFunc()
}
func (itr *WALSegmentIterator) Next() bool {
return itr.NextFunc()
}
func (itr *WALSegmentIterator) Err() error {
return itr.ErrFunc()
}
func (itr *WALSegmentIterator) WALSegment() litestream.WALSegmentInfo {
return itr.WALSegmentFunc()
}