public void MergeFrom(FaultRateLimit other)
        {
            if (other == null)
            {
                return;
            }
            if (other.percentage_ != null)
            {
                if (percentage_ == null)
                {
                    Percentage = new global::Envoy.Type.FractionalPercent();
                }
                Percentage.MergeFrom(other.Percentage);
            }
            switch (other.LimitTypeCase)
            {
            case LimitTypeOneofCase.FixedLimit:
                if (FixedLimit == null)
                {
                    FixedLimit = new global::Envoy.Config.Filter.Fault.V3Alpha.FaultRateLimit.Types.FixedLimit();
                }
                FixedLimit.MergeFrom(other.FixedLimit);
                break;

            case LimitTypeOneofCase.HeaderLimit:
                if (HeaderLimit == null)
                {
                    HeaderLimit = new global::Envoy.Config.Filter.Fault.V3Alpha.FaultRateLimit.Types.HeaderLimit();
                }
                HeaderLimit.MergeFrom(other.HeaderLimit);
                break;
            }

            _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
        }
        public override int GetHashCode()
        {
            int hash = 1;

            if (limitTypeCase_ == LimitTypeOneofCase.FixedLimit)
            {
                hash ^= FixedLimit.GetHashCode();
            }
            if (limitTypeCase_ == LimitTypeOneofCase.HeaderLimit)
            {
                hash ^= HeaderLimit.GetHashCode();
            }
            if (percentage_ != null)
            {
                hash ^= Percentage.GetHashCode();
            }
            hash ^= (int)limitTypeCase_;
            if (_unknownFields != null)
            {
                hash ^= _unknownFields.GetHashCode();
            }
            return(hash);
        }