// Code generated by cue get go. DO NOT EDIT.

//cue:generate cue get go k8s.io/apimachinery/pkg/runtime

package runtime

// MultiObjectTyper returns the types of objects across multiple schemes in order.
#MultiObjectTyper: [...#ObjectTyper]

// WithVersionEncoder serializes an object and ensures the GVK is set.
#WithVersionEncoder: {
	Version:     #GroupVersioner
	Encoder:     #Encoder
	ObjectTyper: #ObjectTyper
}

// WithoutVersionDecoder clears the group version kind of a deserialized object.
#WithoutVersionDecoder: {
	Decoder: #Decoder
}
