The internal GCP package used `pkg.go.dev/google.golang.org/api` [1] to interact with Compute Engine API. Modify the package to use the new and idiomatic `pkg.go.dev/cloud.google.com/go` [2] library for interacting with the Compute Engine API. The new library have been already used to interact with the Cloudbuild and Storage APIs. The new library was not used for Compute Engine since the beginning, because at that time, it didn't support Compute Engine. Update go.mod and vendored packages. [1] https://github.com/googleapis/google-api-go-client [2] https://github.com/googleapis/google-cloud-go Signed-off-by: Tomas Hozza <thozza@redhat.com>
30 lines
906 B
Go
30 lines
906 B
Go
// +build !appengine
|
|
|
|
// This file encapsulates usage of unsafe.
|
|
// xxhash_safe.go contains the safe implementations.
|
|
|
|
package xxhash
|
|
|
|
import (
|
|
"reflect"
|
|
"unsafe"
|
|
)
|
|
|
|
// Sum64String computes the 64-bit xxHash digest of s.
|
|
// It may be faster than Sum64([]byte(s)) by avoiding a copy.
|
|
//
|
|
// TODO(caleb): Consider removing this if an optimization is ever added to make
|
|
// it unnecessary: https://golang.org/issue/2205.
|
|
//
|
|
// TODO(caleb): We still have a function call; we could instead write Go/asm
|
|
// copies of Sum64 for strings to squeeze out a bit more speed.
|
|
func Sum64String(s string) uint64 {
|
|
// See https://groups.google.com/d/msg/golang-nuts/dcjzJy-bSpw/tcZYBzQqAQAJ
|
|
// for some discussion about this unsafe conversion.
|
|
var b []byte
|
|
bh := (*reflect.SliceHeader)(unsafe.Pointer(&b))
|
|
bh.Data = (*reflect.StringHeader)(unsafe.Pointer(&s)).Data
|
|
bh.Len = len(s)
|
|
bh.Cap = len(s)
|
|
return Sum64(b)
|
|
}
|