示例#1
0
文件: IoList.c 项目: doublec/io
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;
}
示例#2
0
文件: IoDuration.c 项目: ADTSH/io
int IoDuration_compare(IoDuration *self, IoDuration *other)
{
	if (ISDURATION(other))
	{
	return Duration_compare(DATA(self), DATA(other));
	}

	return IoObject_defaultCompare(self, other);
}
示例#3
0
文件: IoSeq.c 项目: asymmetric/io
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);
}
示例#4
0
文件: IoNumber.c 项目: Akiyah/io
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);
}
示例#5
0
文件: IoDate.c 项目: bomma/io
int IoDate_compare(IoDate *self, IoDate *date)
{
	if (ISDATE(date)) return Date_compare(DATA(self), DATA(date));
	return IoObject_defaultCompare(self, date);
}