Add error handling for ForEach's.

This commit is contained in:
Andrey Smirnov
2013-12-26 16:58:04 +04:00
parent be7a1762ac
commit 218057ea48
9 changed files with 151 additions and 40 deletions
+14 -8
View File
@@ -35,12 +35,15 @@ func (l *PackageList) Add(p *Package) error {
}
// ForEach calls handler for each package in list
//
// TODO: Error handling
func (l *PackageList) ForEach(handler func(*Package)) {
func (l *PackageList) ForEach(handler func(*Package) error) error {
var err error
for _, p := range l.packages {
handler(p)
err = handler(p)
if err != nil {
return err
}
}
return err
}
// Len returns number of packages in the list
@@ -105,10 +108,13 @@ func (l *PackageRefList) Decode(input []byte) error {
}
// ForEach calls handler for each package ref in list
//
// TODO: Error handling
func (l *PackageRefList) ForEach(handler func([]byte)) {
func (l *PackageRefList) ForEach(handler func([]byte) error) error {
var err error
for _, p := range l.Refs {
handler(p)
err = handler(p)
if err != nil {
return err
}
}
return err
}