// Equals returns true if this object is equal to another one.
185385
func (b PolicyBindings) Equals(another PolicyBindings) bool {
	if len(b) != len(another) {
		return false
	}
	for role, right := range another {
		left := b[role]
		if len(left) != len(right) {
			return false
		}
		for item := range left {
			if _, hasIt := right[item]; !hasIt {
				return false
			}
		}
	}
	return true
}
24644
func Equals(point1, other geom.Coord) bool {
	return (point1[0] == other[0]) && (point1[1] == other[1]) &&
		((point1[2] == other[2]) ||
			(math.IsNaN(point1[2]) && math.IsNaN(other[2])))
}
309956
func (c *Color) Equals(c2 *Color) bool {
	if len(c.params) != len(c2.params) {
		return false
	}

	for _, attr := range c.params {
		if !c2.attrExists(attr) {
			return false
		}
	}

	return true
}
91483
func (c *Constraint) Equals(o *Constraint) bool {
	return c == o ||
		c.LTarget == o.LTarget &&
			c.RTarget == o.RTarget &&
			c.Operand == o.Operand
}
937012
func (g *Geometry) Equals(other *Geometry) (bool, error) {
	return g.binaryPred("Equals", cGEOSEquals, other)
}
435741
func (v *Xception) Equals(rhs *Xception) bool {
	if v == nil {
		return rhs == nil
	} else if rhs == nil {
		return false
	}
	if !_I32_EqualsPtr(v.ErrorCode, rhs.ErrorCode) {
		return false
	}
	if !_String_EqualsPtr(v.Message, rhs.Message) {
		return false
	}

	return true
}
1123329
func (p Point) Equals(other Point) bool {
	return FloatEquals(p.X, other.X) &&
		FloatEquals(p.Y, other.Y) &&
		FloatEquals(p.Z, other.Z)
}
667294
func (pubKey PubKeyEd25519) Equals(other crypto.PubKey) bool {
	if otherEd, ok := other.(PubKeyEd25519); ok {
		return bytes.Equal(pubKey[:], otherEd[:])
	} else {
		return false
	}
}
413494
func (c Vertex) Equals(other core.DxfElement) bool {
	if otherVertex, ok := other.(*Vertex); ok {
		return c.BaseEntity.Equals(otherVertex.BaseEntity) &&
			c.Location.Equals(otherVertex.Location) &&
			core.FloatEquals(c.StartingWidth, otherVertex.StartingWidth) &&
			core.FloatEquals(c.EndWidth, otherVertex.EndWidth) &&
			core.FloatEquals(c.Bulge, otherVertex.Bulge) &&
			c.CreatedByCurveFitting == otherVertex.CreatedByCurveFitting &&
			c.CurveFitTangentDefined == otherVertex.CurveFitTangentDefined &&
			c.SplineVertex == otherVertex.SplineVertex &&
			c.SplineFrameCtrlPoint == otherVertex.SplineFrameCtrlPoint &&
			c.Is3dPolylineVertex == otherVertex.Is3dPolylineVertex &&
			c.Is3dPolylineMesh == otherVertex.Is3dPolylineMesh &&
			c.IsPolyfaceMeshVertex == otherVertex.IsPolyfaceMeshVertex &&
			core.FloatEquals(c.CurveFitTangentDirection,
				otherVertex.CurveFitTangentDirection) &&
			c.Id == otherVertex.Id
	}
	return false
}
1201820
func (v *StructA) Equals(rhs *StructA) bool {
	if v == nil {
		return rhs == nil
	} else if rhs == nil {
		return false
	}
	if !(v.S == rhs.S) {
		return false
	}

	return true
}
888327
func (c SeqEnd) Equals(other core.DxfElement) bool {
	if otherSeqEnd, ok := other.(*SeqEnd); ok {
		return c.BaseEntity.Equals(otherSeqEnd.BaseEntity)
	}
	return false
}
114606
func (m *Matrix) Equals(other *Matrix) bool {
	if other == nil && m != nil {
		return false
	} else if other == nil {
		return true
	}

	if m.stride != other.stride {
		return false
	}

	msize := len(m.elements)
	m2size := len(other.elements)

	if msize != m2size {
		return false
	}

	for i := 0; i < msize; i++ {
		if m.elements[i] != other.elements[i] {
			return false
		}
	}
	return true
}
648441
func (bc BoxCorners) Equals(other BoxCorners) bool {
	return bc.TopLeft.Equals(other.TopLeft) &&
		bc.TopRight.Equals(other.TopRight) &&
		bc.BottomRight.Equals(other.BottomRight) &&
		bc.BottomLeft.Equals(other.BottomLeft)
}
483859
func Equals(v1, v2 Vect) bool {
	return v1.X == v2.X && v1.Y == v2.Y
}
268064
func (v *KeyValue_GetValue_Result) Equals(rhs *KeyValue_GetValue_Result) bool {
	if v == nil {
		return rhs == nil
	} else if rhs == nil {
		return false
	}
	if !_String_EqualsPtr(v.Success, rhs.Success) {
		return false
	}
	if !((v.DoesNotExist == nil && rhs.DoesNotExist == nil) || (v.DoesNotExist != nil && rhs.DoesNotExist != nil && v.DoesNotExist.Equals(rhs.DoesNotExist))) {
		return false
	}

	return true
}
1019993
func (graph *GraphConfig) Equals(that *GraphConfig) bool {
	return reflect.DeepEqual(graph, that)
}
503033
func equals(v1, v2 interface{}) bool {
	v1Type := jsonType(v1)
	if v1Type != jsonType(v2) {
		return false
	}
	switch v1Type {
	case "array":
		arr1, arr2 := v1.([]interface{}), v2.([]interface{})
		if len(arr1) != len(arr2) {
			return false
		}
		for i := range arr1 {
			if !equals(arr1[i], arr2[i]) {
				return false
			}
		}
		return true
	case "object":
		obj1, obj2 := v1.(map[string]interface{}), v2.(map[string]interface{})
		if len(obj1) != len(obj2) {
			return false
		}
		for k, v1 := range obj1 {
			if v2, ok := obj2[k]; ok {
				if !equals(v1, v2) {
					return false
				}
			} else {
				return false
			}
		}
		return true
	case "number":
		num1, _ := new(big.Float).SetString(string(v1.(json.Number)))
		num2, _ := new(big.Float).SetString(string(v2.(json.Number)))
		return num1.Cmp(num2) == 0
	default:
		return v1 == v2
	}
}