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: {
                    global::Envoy.Type.DoubleRange subBuilder = new global::Envoy.Type.DoubleRange();
                    if (matchPatternCase_ == MatchPatternOneofCase.Range)
                    {
                        subBuilder.MergeFrom(Range);
                    }
                    input.ReadMessage(subBuilder);
                    Range = subBuilder;
                    break;
                }

                case 17: {
                    Exact = input.ReadDouble();
                    break;
                }
                }
            }
        }
        public void MergeFrom(DoubleMatcher other)
        {
            if (other == null)
            {
                return;
            }
            switch (other.MatchPatternCase)
            {
            case MatchPatternOneofCase.Range:
                if (Range == null)
                {
                    Range = new global::Envoy.Type.DoubleRange();
                }
                Range.MergeFrom(other.Range);
                break;

            case MatchPatternOneofCase.Exact:
                Exact = other.Exact;
                break;
            }

            _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
        }