diff options
| author | Stefan Majewsky <majewsky@gmx.net> | 2026-07-21 14:28:15 +0200 |
|---|---|---|
| committer | Stefan Majewsky <majewsky@gmx.net> | 2026-07-21 14:42:45 +0200 |
| commit | e3179558f05e9bb2c8c57fe9d0e916cb829df11c (patch) | |
| tree | f2c5eb52ded19b870f075bed25e26e524701b2bc | |
| parent | 9bcfd4733a7ae7d12129b024e93536f7136e4a8e (diff) | |
| download | go-schwift-e3179558f05e9bb2c8c57fe9d0e916cb829df11c.tar.gz | |
bump Go to 1.26, replace errext.As with errors.AsType
| -rw-r--r-- | CHANGELOG.md | 1 | ||||
| -rw-r--r-- | bulk.go | 4 | ||||
| -rw-r--r-- | errors.go | 4 | ||||
| -rw-r--r-- | go.mod | 2 | ||||
| -rw-r--r-- | internal/errext/errext.go | 26 | ||||
| -rw-r--r-- | tests/bulk_upload_test.go | 6 |
6 files changed, 8 insertions, 35 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 14589b5..adcaad4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ Changes: - `Account.Headers` and `Container.Headers` are now thread-safe. +- The minimum Go version is now 1.26. # v2.2.0 (2026-07-17) @@ -21,6 +21,7 @@ package schwift import ( "context" "encoding/json" + "errors" "fmt" "io" "net/http" @@ -29,7 +30,6 @@ import ( "strings" "go.xyrillian.de/schwift/v2/capabilities" - "go.xyrillian.de/schwift/v2/internal/errext" ) // BulkUploadFormat enumerates possible archive formats for Container.BulkUpload(). @@ -216,7 +216,7 @@ func (a *Account) bulkDeleteSingle(ctx context.Context, objects []*Object, conta numNotFound++ return nil } - if statusErr, ok := errext.As[UnexpectedStatusCodeError](err); ok { + if statusErr, ok := errors.AsType[UnexpectedStatusCodeError](err); ok { errs = append(errs, BulkObjectError{ ContainerName: containerName, ObjectName: objectName, @@ -24,8 +24,6 @@ import ( "net/http" "strconv" "strings" - - "go.xyrillian.de/schwift/v2/internal/errext" ) var ( @@ -150,7 +148,7 @@ func (e BulkError) Error() string { // // It is safe to pass a nil error, in which case Is() always returns false. func Is(err error, code int) bool { - if e, ok := errext.As[UnexpectedStatusCodeError](err); ok { + if e, ok := errors.AsType[UnexpectedStatusCodeError](err); ok { return e.ActualResponse.StatusCode == code } return false @@ -1,6 +1,6 @@ module go.xyrillian.de/schwift/v2 -go 1.25.0 +go 1.26 require ( github.com/gophercloud/gophercloud/v2 v2.13.0 diff --git a/internal/errext/errext.go b/internal/errext/errext.go deleted file mode 100644 index 3655ba7..0000000 --- a/internal/errext/errext.go +++ /dev/null @@ -1,26 +0,0 @@ -package errext - -import "errors" - -// vendored from https://github.com/sapcc/go-bits/blob/master/errext/errext.go (also licensed Apache 2.0) to prevent go.mod go bump to 1.21 - -// As is a variant of errors.As() that leverages generics to present a nicer interface. -// -// //this code: -// var perr os.PathError -// if errors.As(err, &perr) { -// handle(perr) -// } -// //can be rewritten as: -// if perr, ok := errext.As[os.PathError](err); ok { -// handle(perr) -// } -// -// This is sometimes more verbose (like in this example), but allows to scope -// the specific error variable to the condition's then-branch, and also looks -// more idiomatic to developers already familiar with type casts. -func As[T error](err error) (T, bool) { - var result T - ok := errors.As(err, &result) - return result, ok -} diff --git a/tests/bulk_upload_test.go b/tests/bulk_upload_test.go index ede3a65..dc5b033 100644 --- a/tests/bulk_upload_test.go +++ b/tests/bulk_upload_test.go @@ -21,11 +21,11 @@ package tests import ( "archive/tar" "bytes" + "errors" "strings" "testing" "go.xyrillian.de/schwift/v2" - "go.xyrillian.de/schwift/v2/internal/errext" ) func TestBulkUploadSuccess(t *testing.T) { @@ -65,7 +65,7 @@ func TestBulkUploadArchiveError(t *testing.T) { ) expectInt(t, n, 0) expectError(t, err, "400 Bad Request: Invalid Tar File: truncated header") - bulkErr, _ := errext.As[schwift.BulkError](err) + bulkErr, _ := errors.AsType[schwift.BulkError](err) expectInt(t, bulkErr.StatusCode, 400) expectString(t, bulkErr.OverallError, "Invalid Tar File: truncated header") expectInt(t, len(bulkErr.ObjectErrors), 0) @@ -91,7 +91,7 @@ func TestBulkUploadObjectError(t *testing.T) { ) expectInt(t, n, 1) expectError(t, err, "400 Bad Request (+1 object errors)") - bulkErr, _ := errext.As[schwift.BulkError](err) + bulkErr, _ := errors.AsType[schwift.BulkError](err) expectInt(t, len(bulkErr.ObjectErrors), 1) expectString(t, bulkErr.ObjectErrors[0].ContainerName, c.Name()) expectInt(t, bulkErr.ObjectErrors[0].StatusCode, 400) |
