5 Star 11 Fork 7

Gitee 极速下载/go-git

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
此仓库是为了提升国内下载速度的镜像仓库,每日同步一次。 原始仓库: https://github.com/src-d/go-git
克隆/下载
node.go 1.34 KB
一键复制 编辑 原始数据 按行查看 历史
package merkletrie
import (
"sort"
"strings"
)
// A node is a Noder implementation for testing purposes: It is easier
// to create test trees using nodes than using real git tree objects.
type node struct {
hash []byte
key string
children []*node
}
// newNode returns a new Node with the given hash, key and children
// (children can be specified in any order).
func newNode(hash []byte, key string, children []*node) *node {
sort.Sort(reverseAlphabeticallyByKey(children))
return &node{
hash: hash,
key: key,
children: children,
}
}
// Hash returns the hash of the node.
func (n *node) Hash() []byte {
return n.hash
}
// Key returns the key of the node.
func (n *node) Key() string {
return n.key
}
// NumChildren returns the number of children.
func (n *node) NumChildren() int {
return len(n.children)
}
// Children returns the node's children in reverse key alphabetical
// order.
func (n *node) Children() []Noder {
ret := make([]Noder, n.NumChildren())
for i := range n.children {
ret[i] = n.children[i]
}
return ret
}
type reverseAlphabeticallyByKey []*node
func (a reverseAlphabeticallyByKey) Len() int {
return len(a)
}
func (a reverseAlphabeticallyByKey) Swap(i, j int) {
a[i], a[j] = a[j], a[i]
}
func (a reverseAlphabeticallyByKey) Less(i, j int) bool {
return strings.Compare(a[i].key, a[j].key) > 0
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/mirrors/go-git.git
git@gitee.com:mirrors/go-git.git
mirrors
go-git
go-git
v4.0.0-rc7

搜索帮助