public void MergeFrom(pb::CodedInputStream input)
        {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
            input.ReadRawMessage(this);
    #else
            uint tag;
            while ((tag = input.ReadTag()) != 0)
            {
                switch (tag)
                {
                default:
                    _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
                    break;

                case 8: {
                    Action = (global::Animus.Companion.DriverMessage.Types.DriverAction)input.ReadEnum();
                    break;
                }

                case 18: {
                    performance_.AddEntriesFrom(input, _repeated_performance_codec);
                    break;
                }

                case 24: {
                    DriverActive = input.ReadBool();
                    break;
                }

                case 34: {
                    if (version_ == null)
                    {
                        Version = new global::Animus.Common.VersionInfo();
                    }
                    input.ReadMessage(Version);
                    break;
                }

                case 42: {
                    if (error_ == null)
                    {
                        Error = new global::Animus.Common.Error();
                    }
                    input.ReadMessage(Error);
                    break;
                }

                case 50: {
                    IP = input.ReadString();
                    break;
                }

                case 58: {
                    Port = input.ReadString();
                    break;
                }
                }
            }
    #endif
        }
        void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)
        {
            uint tag;

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

                case 8: {
                    Action = (global::Animus.Companion.DriverMessage.Types.DriverAction)input.ReadEnum();
                    break;
                }

                case 18: {
                    performance_.AddEntriesFrom(ref input, _repeated_performance_codec);
                    break;
                }

                case 24: {
                    DriverActive = input.ReadBool();
                    break;
                }

                case 34: {
                    if (version_ == null)
                    {
                        Version = new global::Animus.Common.VersionInfo();
                    }
                    input.ReadMessage(Version);
                    break;
                }

                case 42: {
                    if (error_ == null)
                    {
                        Error = new global::Animus.Common.Error();
                    }
                    input.ReadMessage(Error);
                    break;
                }

                case 50: {
                    IP = input.ReadString();
                    break;
                }

                case 58: {
                    Port = input.ReadString();
                    break;
                }
                }
            }
        }
 public void MergeFrom(DriverMessage other)
 {
     if (other == null)
     {
         return;
     }
     if (other.Action != global::Animus.Companion.DriverMessage.Types.DriverAction.GetPerformance)
     {
         Action = other.Action;
     }
     performance_.Add(other.performance_);
     if (other.DriverActive != false)
     {
         DriverActive = other.DriverActive;
     }
     if (other.version_ != null)
     {
         if (version_ == null)
         {
             Version = new global::Animus.Common.VersionInfo();
         }
         Version.MergeFrom(other.Version);
     }
     if (other.error_ != null)
     {
         if (error_ == null)
         {
             Error = new global::Animus.Common.Error();
         }
         Error.MergeFrom(other.Error);
     }
     if (other.IP.Length != 0)
     {
         IP = other.IP;
     }
     if (other.Port.Length != 0)
     {
         Port = other.Port;
     }
     _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
 }