blob: 63e231d1db9cd1db3dd6f0f0fe4484225ab2522b [file] [log] [blame]
// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package collect
// Error provides a mechanism for collecting errors from deferred
// functions. The mechanism executes all deferred functions
// irrespective of their return value, returning the first error it
// encounters or nil if no error is encountered.
func Error(fn func() error, err *error) {
if *err != nil {
fn()
} else {
*err = fn()
}
}
// Errors provides a mechanism for collecting errors from deferred
// functions. The mechanism executes all deferred functions
// irrespective of their return value, collecting all the errors it
// encounters.
func Errors(fn func() error, errs *[]error) {
if err := fn(); err != nil {
*errs = append(*errs, err)
}
}