compareTo method

  1. @override
int compareTo(
  1. PlutusData other
)
override

Compares this object to another object.

Returns a value like a Comparator when comparing this to other. That is, it returns a negative integer if this is ordered before other, a positive integer if this is ordered after other, and zero if this and other are ordered together.

The other argument must be a value that is comparable to this object.

Implementation

@override
int compareTo(PlutusData other) {
  if (other is! PlutusMap) {
    return super.compareTo(other);
  }
  final lenComparison = value.length.compareTo(other.value.length);
  if (lenComparison == 0) {
    for (int i = 0; i < value.entries.length; i++) {
      final entry = value.entries.elementAt(i);
      final otherEntry = other.value.entries.elementAt(i);
      final keyCompare = entry.key.compareTo(otherEntry.key);
      if (keyCompare != 0) return keyCompare;
      final valueCompare = entry.value.compareTo(otherEntry.value);
      if (valueCompare != 0) return valueCompare;
    }
  }
  return lenComparison;
}