public void MergeFrom(ValueMatcher other)
        {
            if (other == null)
            {
                return;
            }
            switch (other.MatchPatternCase)
            {
            case MatchPatternOneofCase.NullMatch:
                if (NullMatch == null)
                {
                    NullMatch = new global::Envoy.Type.Matcher.ValueMatcher.Types.NullMatch();
                }
                NullMatch.MergeFrom(other.NullMatch);
                break;

            case MatchPatternOneofCase.DoubleMatch:
                if (DoubleMatch == null)
                {
                    DoubleMatch = new global::Envoy.Type.Matcher.DoubleMatcher();
                }
                DoubleMatch.MergeFrom(other.DoubleMatch);
                break;

            case MatchPatternOneofCase.StringMatch:
                if (StringMatch == null)
                {
                    StringMatch = new global::Envoy.Type.Matcher.StringMatcher();
                }
                StringMatch.MergeFrom(other.StringMatch);
                break;

            case MatchPatternOneofCase.BoolMatch:
                BoolMatch = other.BoolMatch;
                break;

            case MatchPatternOneofCase.PresentMatch:
                PresentMatch = other.PresentMatch;
                break;

            case MatchPatternOneofCase.ListMatch:
                if (ListMatch == null)
                {
                    ListMatch = new global::Envoy.Type.Matcher.ListMatcher();
                }
                ListMatch.MergeFrom(other.ListMatch);
                break;
            }

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