== Why is this an issue?

If you're using a `Structure`, it is likely because you're interested in performance. But by failing to implement `IEquatable<T>` you're loosing performance when comparisons are made because without `IEquatable<T>`, boxing and reflection are used to make comparisons.

=== Noncompliant code example

[source,vbnet]
----
Structure MyStruct ' Noncompliant

    Public Property Value As Integer

End Structure
----

=== Compliant solution

[source,vbnet]
----
Structure MyStruct
    Implements IEquatable(Of MyStruct)

    Public Property Value As Integer

    Public Overloads Function Equals(other As MyStruct) As Boolean Implements IEquatable(Of MyStruct).Equals
        ' ...
    End Function

End Structure
----

include::../see.adoc[]

include::../rspecator.adoc[]
