ref: 79c40dcb08f0d512bd6d75d5e2acd3ddceec4530
dir: /commitgraph/read/open.go/
package read
import (
"fmt"
"os"
"codeberg.org/lindenii/furgit/objectid"
)
// Open opens commit-graph data from one objects root.
//
// Open borrows root during construction and does not close it.
func Open(root *os.Root, algo objectid.Algorithm, mode OpenMode) (*Reader, error) {
if algo.Size() == 0 {
return nil, objectid.ErrInvalidAlgorithm
}
switch mode {
case OpenSingle:
return openSingle(root, algo)
case OpenChain:
return openChain(root, algo)
default:
return nil, fmt.Errorf("commitgraph: invalid open mode %d", mode)
}
}