package encoding import ( _ "google.golang.org/grpc/encoding/proto" // Ensure default codec is registered before our one. "google.golang.org/protobuf/proto" "google.golang.org/protobuf/protoadapt" ) // messageV2Of converts v to a proto.Message. // This is needed for this library to continue working in presence of external gRPC packages, // such as opentelemetry gRPC exporter. // Copied from https://github.com/grpc/grpc-go/blob/e524655becd8d4c7ba9e8687faef456e495e341e/encoding/proto/proto.go#L59. func messageV2Of(v any) proto.Message { switch v := v.(type) { case protoadapt.MessageV1: return protoadapt.MessageV2Of(v) case protoadapt.MessageV2: return v } return nil }