From 27bea93efeba771b72d7c4850067a5dc1339caa6 Mon Sep 17 00:00:00 2001 From: Jesse Ezell Date: Wed, 19 Mar 2014 00:36:00 -0700 Subject: split out name iterator --- reference.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'reference.go') diff --git a/reference.go b/reference.go index 7d28115..493663a 100644 --- a/reference.go +++ b/reference.go @@ -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) -- cgit v1.2.3