public void MergeFrom(Rule other)
 {
     if (other == null)
     {
         return;
     }
     if (other.Header.Length != 0)
     {
         Header = other.Header;
     }
     if (other.onHeaderPresent_ != null)
     {
         if (onHeaderPresent_ == null)
         {
             onHeaderPresent_ = new global::Envoy.Config.Filter.Http.HeaderToMetadata.V2.Config.Types.KeyValuePair();
         }
         OnHeaderPresent.MergeFrom(other.OnHeaderPresent);
     }
     if (other.onHeaderMissing_ != null)
     {
         if (onHeaderMissing_ == null)
         {
             onHeaderMissing_ = new global::Envoy.Config.Filter.Http.HeaderToMetadata.V2.Config.Types.KeyValuePair();
         }
         OnHeaderMissing.MergeFrom(other.OnHeaderMissing);
     }
     if (other.Remove != false)
     {
         Remove = other.Remove;
     }
     _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
 }
                public override int GetHashCode()
                {
                    int hash = 1;

                    if (Header.Length != 0)
                    {
                        hash ^= Header.GetHashCode();
                    }
                    if (onHeaderPresent_ != null)
                    {
                        hash ^= OnHeaderPresent.GetHashCode();
                    }
                    if (onHeaderMissing_ != null)
                    {
                        hash ^= OnHeaderMissing.GetHashCode();
                    }
                    if (Remove != false)
                    {
                        hash ^= Remove.GetHashCode();
                    }
                    if (_unknownFields != null)
                    {
                        hash ^= _unknownFields.GetHashCode();
                    }
                    return(hash);
                }