podman

Форк
0
40 строк · 778.0 Байт
1
// Copyright 2020 The Go Authors. All rights reserved.
2
// Use of this source code is governed by a BSD-style
3
// license that can be found in the LICENSE file.
4

5
//go:build !go1.13
6
// +build !go1.13
7

8
package errors
9

10
import "reflect"
11

12
// Is is a copy of Go 1.13's errors.Is for use with older Go versions.
13
func Is(err, target error) bool {
14
	if target == nil {
15
		return err == target
16
	}
17

18
	isComparable := reflect.TypeOf(target).Comparable()
19
	for {
20
		if isComparable && err == target {
21
			return true
22
		}
23
		if x, ok := err.(interface{ Is(error) bool }); ok && x.Is(target) {
24
			return true
25
		}
26
		if err = unwrap(err); err == nil {
27
			return false
28
		}
29
	}
30
}
31

32
func unwrap(err error) error {
33
	u, ok := err.(interface {
34
		Unwrap() error
35
	})
36
	if !ok {
37
		return nil
38
	}
39
	return u.Unwrap()
40
}
41

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.