int IoList_compare(IoList *self, IoList *otherList) { if (!ISLIST(otherList)) { return IoObject_defaultCompare(self, otherList); } else { size_t s1 = List_size(DATA(self)); size_t s2 = List_size(DATA(otherList)); size_t i; if (s1 != s2) { return s1 > s2 ? 1 : -1; } for (i = 0; i < s1; i ++) { IoObject *v1 = LIST_AT_(DATA(self), i); IoObject *v2 = LIST_AT_(DATA(otherList), i); int c = IoObject_compare(v1, v2); if (c) { return c; } } } return 0; }
int IoDuration_compare(IoDuration *self, IoDuration *other) { if (ISDURATION(other)) { return Duration_compare(DATA(self), DATA(other)); } return IoObject_defaultCompare(self, other); }
int IoSeq_compare(IoSeq *self, IoSeq *v) { if (ISSEQ(v)) { if (self == v) return 0; return UArray_compare_(DATA(self), DATA(v)); } return IoObject_defaultCompare(self, v); }
int IoNumber_compare(IoNumber *self, IoNumber *v) { if (ISNUMBER(v)) { if (DATA(self) == DATA(v)) { return 0; } return (DATA(self) > DATA(v)) ? 1 : -1; } return IoObject_defaultCompare(self, v); }
int IoDate_compare(IoDate *self, IoDate *date) { if (ISDATE(date)) return Date_compare(DATA(self), DATA(date)); return IoObject_defaultCompare(self, date); }