Exemplo n.º 1
0
Arquivo: IoList.c Projeto: 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;
}
Exemplo n.º 2
0
int IoDuration_compare(IoDuration *self, IoDuration *other)
{
	if (ISDURATION(other))
	{
	return Duration_compare(DATA(self), DATA(other));
	}

	return IoObject_defaultCompare(self, other);
}
Exemplo n.º 3
0
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);
}
Exemplo n.º 4
0
Arquivo: IoNumber.c Projeto: 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);
}
Exemplo n.º 5
0
Arquivo: IoDate.c Projeto: bomma/io
int IoDate_compare(IoDate *self, IoDate *date)
{
	if (ISDATE(date)) return Date_compare(DATA(self), DATA(date));
	return IoObject_defaultCompare(self, date);
}