Add branch iterator #66
|
@ -32,7 +32,7 @@ func TestBranchIterator(t *testing.T) {
|
||||||
checkFatal(t, err)
|
checkFatal(t, err)
|
||||||
|
|
||||||
list := make([]string, 0)
|
list := make([]string, 0)
|
||||||
for ref := range ReferenceNameIteratorChannel(i) {
|
for ref := range NameIteratorChannel(i) {
|
||||||
list = append(list, ref)
|
list = append(list, ref)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
10
reference.go
10
reference.go
|
@ -185,12 +185,16 @@ func (v *Reference) Free() {
|
||||||
C.git_reference_free(v.ptr)
|
C.git_reference_free(v.ptr)
|
||||||
}
|
}
|
||||||
|
|
||||||
type ReferenceIterator interface {
|
type NameIterator interface {
|
||||||
Next() (*Reference, error)
|
|
||||||
NextName() (string, error)
|
NextName() (string, error)
|
||||||
Free()
|
Free()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type ReferenceIterator interface {
|
||||||
|
NameIterator
|
||||||
|
Next() (*Reference, error)
|
||||||
|
}
|
||||||
|
|
||||||
type gitReferenceIterator struct {
|
type gitReferenceIterator struct {
|
||||||
ptr *C.git_reference_iterator
|
ptr *C.git_reference_iterator
|
||||||
}
|
}
|
||||||
|
@ -255,7 +259,7 @@ func (v *gitReferenceIterator) NextName() (string, error) {
|
||||||
// Create a channel from the iterator. You can use range on the
|
// Create a channel from the iterator. You can use range on the
|
||||||
// returned channel to iterate over all the references names. The channel
|
// returned channel to iterate over all the references names. The channel
|
||||||
// will be closed in case any error is found.
|
// will be closed in case any error is found.
|
||||||
func ReferenceNameIteratorChannel(v ReferenceIterator) <-chan string {
|
func NameIteratorChannel(v NameIterator) <-chan string {
|
||||||
ch := make(chan string)
|
ch := make(chan string)
|
||||||
go func() {
|
go func() {
|
||||||
defer close(ch)
|
defer close(ch)
|
||||||
|
|
|
@ -138,7 +138,7 @@ func TestReferenceIterator(t *testing.T) {
|
||||||
// test the channel iteration
|
// test the channel iteration
|
||||||
list = []string{}
|
list = []string{}
|
||||||
iter, err = repo.NewReferenceIterator()
|
iter, err = repo.NewReferenceIterator()
|
||||||
for name := range ReferenceNameIteratorChannel(iter) {
|
for name := range NameIteratorChannel(iter) {
|
||||||
list = append(list, name)
|
list = append(list, name)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -152,7 +152,7 @@ func TestReferenceIterator(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
list = []string{}
|
list = []string{}
|
||||||
for name := range ReferenceNameIteratorChannel(iter) {
|
for name := range NameIteratorChannel(iter) {
|
||||||
list = append(list, name)
|
list = append(list, name)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue