chromium/base/ios/ns_error_util.h

// Copyright 2015 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef BASE_IOS_NS_ERROR_UTIL_H_
#define BASE_IOS_NS_ERROR_UTIL_H_

@class NSError;

namespace base {
namespace ios {

// Iterates through |error|'s underlying errors and returns the first error for
// which there is no underlying error.
NSError* GetFinalUnderlyingErrorFromError(NSError* error);

// Returns a copy of |original_error| with |underlying_error| appended to the
// end of its underlying error chain.
NSError* ErrorWithAppendedUnderlyingError(NSError* original_error,
                                          NSError* underlying_error);

}  // namespace ios
}  // namespace base

#endif  // BASE_IOS_NS_ERROR_UTIL_H_