aboutsummaryrefslogtreecommitdiff
path: root/object/store/packed/new.go
diff options
context:
space:
mode:
Diffstat (limited to 'object/store/packed/new.go')
-rw-r--r--object/store/packed/new.go23
1 files changed, 5 insertions, 18 deletions
diff --git a/object/store/packed/new.go b/object/store/packed/new.go
index 96339f3d..efcdd602 100644
--- a/object/store/packed/new.go
+++ b/object/store/packed/new.go
@@ -1,33 +1,20 @@
package packed
import (
- "fmt"
"os"
objectid "codeberg.org/lindenii/furgit/object/id"
+ "codeberg.org/lindenii/furgit/object/store/packed/internal/reading"
)
// New creates a packed-object store rooted at an objects/pack directory.
//
// Labels: Deps-Borrowed, Life-Parent.
func New(root *os.Root, algo objectid.Algorithm, opts Options) (*Store, error) {
- if algo.Size() == 0 {
- return nil, objectid.ErrInvalidAlgorithm
+ reader, err := reading.New(root, algo, opts.toReadingOptions())
+ if err != nil {
+ return nil, err
}
- switch opts.RefreshPolicy {
- case RefreshPolicyOnMissing, RefreshPolicyNever:
- default:
- return nil, fmt.Errorf("objectstore/packed: invalid refresh policy %d", opts.RefreshPolicy)
- }
-
- return &Store{
- root: root,
- algo: algo,
- refreshPolicy: opts.RefreshPolicy,
- mruNodeByPack: make(map[string]*packCandidateNode),
- idxByPack: make(map[string]*idxFile),
- packs: make(map[string]*packFile),
- deltaCache: newDeltaCache(defaultDeltaCacheMaxBytes),
- }, nil
+ return &Store{reader: reader}, nil
}