public void MergeFrom(Event other)
        {
            if (other == null)
            {
                return;
            }
            if (other.timestamp_ != null)
            {
                if (timestamp_ == null)
                {
                    timestamp_ = new global::Google.Protobuf.WellKnownTypes.Timestamp();
                }
                Timestamp.MergeFrom(other.Timestamp);
            }
            switch (other.EventSelectorCase)
            {
            case EventSelectorOneofCase.Read:
                if (Read == null)
                {
                    Read = new global::Envoy.Data.Tap.V2Alpha.Event.Types.Read();
                }
                Read.MergeFrom(other.Read);
                break;

            case EventSelectorOneofCase.Write:
                if (Write == null)
                {
                    Write = new global::Envoy.Data.Tap.V2Alpha.Event.Types.Write();
                }
                Write.MergeFrom(other.Write);
                break;
            }

            _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
        }
        public void MergeFrom(pb::CodedInputStream input)
        {
            uint tag;

            while ((tag = input.ReadTag()) != 0)
            {
                switch (tag)
                {
                default:
                    _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
                    break;

                case 10: {
                    if (timestamp_ == null)
                    {
                        timestamp_ = new global::Google.Protobuf.WellKnownTypes.Timestamp();
                    }
                    input.ReadMessage(timestamp_);
                    break;
                }

                case 18: {
                    global::Envoy.Data.Tap.V2Alpha.Event.Types.Read subBuilder = new global::Envoy.Data.Tap.V2Alpha.Event.Types.Read();
                    if (eventSelectorCase_ == EventSelectorOneofCase.Read)
                    {
                        subBuilder.MergeFrom(Read);
                    }
                    input.ReadMessage(subBuilder);
                    Read = subBuilder;
                    break;
                }

                case 26: {
                    global::Envoy.Data.Tap.V2Alpha.Event.Types.Write subBuilder = new global::Envoy.Data.Tap.V2Alpha.Event.Types.Write();
                    if (eventSelectorCase_ == EventSelectorOneofCase.Write)
                    {
                        subBuilder.MergeFrom(Write);
                    }
                    input.ReadMessage(subBuilder);
                    Write = subBuilder;
                    break;
                }
                }
            }
        }