Add branch iterator #66

Merged
jezell merged 9 commits from branch-iterator into master 2014-04-26 13:25:26 -05:00
3 changed files with 10 additions and 6 deletions
Showing only changes of commit 27bea93efe - Show all commits

View File

@ -32,7 +32,7 @@ func TestBranchIterator(t *testing.T) {
checkFatal(t, err)
list := make([]string, 0)
for ref := range ReferenceNameIteratorChannel(i) {
for ref := range NameIteratorChannel(i) {
list = append(list, ref)
}

View File

@ -185,12 +185,16 @@ func (v *Reference) Free() {
C.git_reference_free(v.ptr)
}
type ReferenceIterator interface {
Next() (*Reference, error)
type NameIterator interface {
NextName() (string, error)
Free()
}
type ReferenceIterator interface {
NameIterator
Next() (*Reference, error)
}
type gitReferenceIterator struct {
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
// returned channel to iterate over all the references names. The channel
// 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)
go func() {
defer close(ch)

View File

@ -138,7 +138,7 @@ func TestReferenceIterator(t *testing.T) {
// test the channel iteration
list = []string{}
iter, err = repo.NewReferenceIterator()
for name := range ReferenceNameIteratorChannel(iter) {
for name := range NameIteratorChannel(iter) {
list = append(list, name)
}
@ -152,7 +152,7 @@ func TestReferenceIterator(t *testing.T) {
}
list = []string{}
for name := range ReferenceNameIteratorChannel(iter) {
for name := range NameIteratorChannel(iter) {
list = append(list, name)
}