code: func (r *RoleV3) Equals(other Role) bool {
  	if !r.GetOptions().Equals(other.GetOptions()) {
  		return false
  	}
  
  	for _, condition := range []RoleConditionType{Allow, Deny} {
  		if !utils.StringSlicesEqual(r.GetLogins(condition), other.GetLogins(condition)) {
  			return false
  		}
  		if !utils.StringSlicesEqual(r.GetNamespaces(condition), other.GetNamespaces(condition)) {
  			return false
  		}
  		if !r.GetNodeLabels(condition).Equals(other.GetNodeLabels(condition)) {
  			return false
  		}
  		if !RuleSlicesEqual(r.GetRules(condition), other.GetRules(condition)) {
  			return false
  		}
  	}
  
  	return true
  }
docs: // Equals returns true if the roles are equal. Roles are equal if options,
  // namespaces, logins, labels, and conditions match.