EitherOrd<A, B> class

A class that extends Ord to provide a custom ordering for Either values.

This class provides a way to compare two Either values based on the provided orderings for the Left and Right types.

If both Either values are Left, they are compared using the provided leftOrd. If both are Right, they are compared using the provided rightOrd.

If one is Left and the other is Right, Left is considered to come before Right.

Example usage:

final intOrder = Ord<int>((a, b) => a.compareTo(b));
final strOrder = Ord<String>((a, b) => a.compareTo(b));

final eitherOrder = EitherOrd(intOrder, strOrder);

final e1 = Left<int, String>(3);
final e2 = Left<int, String>(5);
final e3 = Right<int, String>("apple");
final e4 = Right<int, String>("banana");

print(eitherOrder.compare(e1, e2)); // -1 because 3 < 5
print(eitherOrder.compare(e3, e4)); // -1 because "apple" < "banana"
print(eitherOrder.compare(e1, e3)); // -1 because Left always comes before Right
Inheritance

Constructors

EitherOrd(Ord<A> leftOrd, Ord<B> rightOrd)

Properties

hashCode int
The hash code for this object.
read-onlyinherited
leftOrd Ord<A>
final
rightOrd Ord<B>
final
runtimeType Type
A representation of the runtime type of the object.
read-onlyinherited

Methods

compare(Either<A, B> x, Either<A, B> y) int
Compares two values and returns an int indicating their order.
inherited
equals(Either<A, B> x, Either<A, B> y) bool
Returns true if the two values are equal according to the compare function.
override
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited