mirror of
https://github.com/nkanaev/yarr.git
synced 2026-06-24 09:05:16 +00:00
add lib/pq
This commit is contained in:
26
vendor/github.com/lib/pq/as.go
generated
vendored
Normal file
26
vendor/github.com/lib/pq/as.go
generated
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
//go:build !go1.26
|
||||
|
||||
package pq
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"slices"
|
||||
)
|
||||
|
||||
// As asserts that the given error is [pq.Error] and returns it, returning nil
|
||||
// if it's not a pq.Error.
|
||||
//
|
||||
// It will return nil if the pq.Error is not one of the given error codes. If no
|
||||
// codes are given it will always return the Error.
|
||||
//
|
||||
// This is safe to call with a nil error.
|
||||
func As(err error, codes ...ErrorCode) *Error {
|
||||
if err == nil { // Not strictly needed, but prevents alloc for nil errors.
|
||||
return nil
|
||||
}
|
||||
pqErr := new(Error)
|
||||
if errors.As(err, &pqErr) && (len(codes) == 0 || slices.Contains(codes, pqErr.Code)) {
|
||||
return pqErr
|
||||
}
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user