mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-25 12:43:23 +00:00
Merge pull request #2055 from smarterclayton/define_an_interface_for_typing
Make DataVersionAndKind public on runtime.Scheme
This commit is contained in:
commit
5ac88dbe2e
@ -33,6 +33,13 @@ type Codec interface {
|
|||||||
Encoder
|
Encoder
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ObjectTyper contains methods for extracting the APIVersion and Kind
|
||||||
|
// of objects.
|
||||||
|
type ObjectTyper interface {
|
||||||
|
DataVersionAndKind([]byte) (version, kind string, err error)
|
||||||
|
ObjectVersionAndKind(Object) (version, kind string, err error)
|
||||||
|
}
|
||||||
|
|
||||||
// ResourceVersioner provides methods for setting and retrieving
|
// ResourceVersioner provides methods for setting and retrieving
|
||||||
// the resource version from an API object.
|
// the resource version from an API object.
|
||||||
type ResourceVersioner interface {
|
type ResourceVersioner interface {
|
||||||
|
@ -174,6 +174,12 @@ func (s *Scheme) KnownTypes(version string) map[string]reflect.Type {
|
|||||||
return s.raw.KnownTypes(version)
|
return s.raw.KnownTypes(version)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DataVersionAndKind will return the APIVersion and Kind of the given wire-format
|
||||||
|
// enconding of an API Object, or an error.
|
||||||
|
func (s *Scheme) DataVersionAndKind(data []byte) (version, kind string, err error) {
|
||||||
|
return s.raw.DataVersionAndKind(data)
|
||||||
|
}
|
||||||
|
|
||||||
// ObjectVersionAndKind returns the version and kind of the given Object.
|
// ObjectVersionAndKind returns the version and kind of the given Object.
|
||||||
func (s *Scheme) ObjectVersionAndKind(obj Object) (version, kind string, err error) {
|
func (s *Scheme) ObjectVersionAndKind(obj Object) (version, kind string, err error) {
|
||||||
return s.raw.ObjectVersionAndKind(obj)
|
return s.raw.ObjectVersionAndKind(obj)
|
||||||
|
@ -47,6 +47,9 @@ func TestScheme(t *testing.T) {
|
|||||||
scheme.AddKnownTypeWithName("", "Simple", &InternalSimple{})
|
scheme.AddKnownTypeWithName("", "Simple", &InternalSimple{})
|
||||||
scheme.AddKnownTypeWithName("externalVersion", "Simple", &ExternalSimple{})
|
scheme.AddKnownTypeWithName("externalVersion", "Simple", &ExternalSimple{})
|
||||||
|
|
||||||
|
// test that scheme is an ObjectTyper
|
||||||
|
var _ runtime.ObjectTyper = scheme
|
||||||
|
|
||||||
internalToExternalCalls := 0
|
internalToExternalCalls := 0
|
||||||
externalToInternalCalls := 0
|
externalToInternalCalls := 0
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user