Consolidate gogo/protobuf dependencies under our own protobuf package

This would make gogo/protobuf migration easier.

Signed-off-by: Kazuyoshi Kato <katokazu@amazon.com>
This commit is contained in:
Kazuyoshi Kato
2022-04-19 02:15:34 +00:00
parent 184883b0a6
commit 88c0c7201e
69 changed files with 133 additions and 77 deletions

View File

@@ -17,11 +17,11 @@
package protobuf
import (
"github.com/containerd/containerd/protobuf/types"
"github.com/containerd/typeurl"
"github.com/gogo/protobuf/types"
)
// FromAny converts typeurl.Any to github.com/gogo/protobuf/types.Any.
// FromAny converts typeurl.Any to github.com/containerd/containerd/protobuf/types.Any.
func FromAny(from typeurl.Any) *types.Any {
if from == nil {
return nil
@@ -37,7 +37,7 @@ func FromAny(from typeurl.Any) *types.Any {
}
}
// FromAny converts an arbitrary interface to github.com/gogo/protobuf/types.Any.
// FromAny converts an arbitrary interface to github.com/containerd/containerd/protobuf/types.Any.
func MarshalAnyToProto(from interface{}) (*types.Any, error) {
any, err := typeurl.MarshalAny(from)
if err != nil {

30
protobuf/proto/proto.go Normal file
View File

@@ -0,0 +1,30 @@
/*
Copyright The containerd Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// Package proto provides convinient aliases that make google.golang.org/protobuf migration easier.
package proto
import (
gogo "github.com/gogo/protobuf/proto"
)
func Marshal(input gogo.Message) ([]byte, error) {
return gogo.Marshal(input)
}
func Unmarshal(input []byte, output gogo.Message) error {
return gogo.Unmarshal(input, output)
}

26
protobuf/types/types.go Normal file
View File

@@ -0,0 +1,26 @@
/*
Copyright The containerd Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// Package types provides convinient aliases that make google.golang.org/protobuf migration easier.
package types
import (
gogo "github.com/gogo/protobuf/types"
)
type Empty = gogo.Empty
type Any = gogo.Any
type FieldMask = gogo.FieldMask